Test Realtime Channel History with a single ProtocolMessage & multiple ProtocolMessages
Add test for echo_messages option when set to false
Extend EventEmitter with #once method to allow callback to be called just once
Use StateMachine to manage Connection state

Notes:
- StateMachine can only cope with simple state changes for now, but will easily cope with more complex state changes as they are added
- Waiting on feedback on receiving a CLOSED ProtoMessage once CLOSE has been sent instead of just closing the connection as we do now
- Connection, Transport & ConnectionState are now separate classes making it much clearer where responsibilities lie for each, and also ensuring the Connection class does not need to be reinstantiated if the connection is closed & reopened.
- Now use instance_doubles throughout as safer than doubles
- All connection tests from Java client lib are now duplicated