PSR-2 fixup.
Support all ciphers from RFC 4253 & RFC 4344.
Support "exit-signal", "exit-status" & "pty-req" requests.

For now, this includes being capable of encoding/decoding such messages.
The rest of the code does not use these types of requests yet.
Various improvements.

* Use a factory to create new instances of the application being served
  over SSH.
* Support DISCONNECT messages.
* Add lots of logs.
* Replace some self calls with static ones (LSB).
Conform to PSR-2.