Refactored and some bug fixes

I've refactored session and web socket transport. I've created suspended state. Also in suspended state messages are not send, but queued in outbox.

There are some bug fixes:
lib/meta-state.rb:77:in `block (3 levels) in build_void_state': wrong number of arguments (1 for 0) (ArgumentError)
and 
 Exception when sending heartbeat frame: #<MetaState::WrongStateError: Message send_heartbeat received in state SockJS::Session::Closed>