Adds request::{subscribe, unsubscribe, psubscribe, punsubscribe}. When requests created with these functions are executed successfully, the created subscriptions are tracked and restore on re-connection.
close#367
* Implements async_run as a FSM and adds tests
* Places all sans-io variables in connection_impl in a connection_state struct
Entails no functional change.