InMemorySubscriptionStorage: Fixed thread safety and performance issues

* Thread safety issues with the underlying lists of client Addresses
* Better performance with key lookups - O(1) vs O(n) for most ops
If this is true, then why not use ConcurrentBag ?