A Send wrapper for a HangingGet that can receive messages via an async channel.
The HangingGetBroker is the primary way of implementing server side hanging get using
this library. It manages all state and reacts to inputs sent over channels.
A Subscriber can be used to register observation requests with the HangingGetBroker.
These observations will be fulfilled when the state changes or immediately the first time
a Subscriber registers an observation.