Factor a (Crypto)PeerListener out of TransportLayer.
Do not start the listener in TransportLayer.

* Only CryptoTransportLayer should start the listener, to conform with
  the tests.
Update tests to check the new TransportLayer interface.

* TransportLayer._on_raw_message now receives just a dict.
* Text conversion has been delegated to PeerListener.