Add a few functions to newtork_util.py

* Add: get_my_ip, is_ipv6_address and get_peer_url.
* Useful for refactoring transport.py.
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.

* Various code improvements
Update tests to check the new TransportLayer interface.

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