Subscriptions Rewrite

Refactor rewrite of Subscriptions by @headinthebox and myself after reviewing the various different implementations.

- We removed `SingleAssignmentSubscription` while trying to reduce surface area and simplify code.
- Moved to a non-blocking state-machine model that does not lock or busy spin during "mutation states"