This differential refactors CryptoModule and Session objects. The following changes are introduced:
- Session object doesn't hold reference to CryptoModule anymore. This reference was just passed in constructor and never used in any method.
- Session object can decrypt message independently.
- CryptoModule can remove session from its internal map.
All changes above were necessary to enable notifications code to work with sessions objects only.