Change RedisConnection to end subscriptions when not allowed
RedisConnection.allowSubscriptions is set to
false, the connection could still be in a subscription state
leaving further commands to fail slowly from a full roundtrip to Redis, rather than succeeding as expected.
This changes the implementation so that it triggers a full unsubscribe from patterns and channels when set to
punsubscribe()when set to
RedisPubSubHandlerto prefix storage of all dictionary keys to avoid name clashes between pattern and channel subscriptions
Developers should now have more deterministic and unsurprising behavior with PubSub in regards to subscription management and connection state.