Add locks back to Subscription, DefaultSubscription and ScaleoutSubscription.
- Add locks back send disconnects can cause Removal of events and cursors
  to happen out of the main loop.

Fixes #1797
Fixes #1796
Merge branch 'release' into dev