* Replace all Debug.Assert by Trace.Assert because 1) I do everything in Release mode to monitor true perf; 2) assertion should really never fail; 3) for truly debug stuff a compilation symbol PRERELEASE is defined.

* Add storage prototype based on MMDataStructures https://github.com/buybackoff/MMDataStructures. Main idea is that buckets are stored inside SHM as references to a storage + a weak reference. If a bucket is used then its map is in the main memory, if not then it could be GCed and to get it back we should load it from cache or persistent storage. NB: With MemoryCache, we will not have data duplication because a Map is a reference type and both cache and weak references will have a reference to the same object.

* Embrace Rx for the C part of CQRS; data streams are ISubjects.