Remove dead code from transport.py

### Motivation 
After close inspecting, it turns out that large parts of code in `transport.py` are never really used. This includes the old handshake protocol and various other methods. 

### Changelog
Because it is hard to believe that all this code is unused I tried to clean it up following a thorough process:

1. I abstracted the methods of `TransportLayer` that were overridden by `CryptoTransportLayer` and nowhere invoked outside `TransportLayer`. All such methods were made to `raise NotImplementedError`.

1. I searched for and removed unused methods. This was done in multiple iterations, as each additional method removed revealed more unused code.

1. I removed unused code from other modules, namely `network_util.py` and `protocol.py`.

1. I removed all test code that was testing or mentioning dropped code.

1. I finished the cleanup doing some style fixes and other changes in `transport.py`.

This PR was co-authored by @Renelvon.
Originally TransportLayer was intended to serve as a function to message between nodes purely without encryption. I abstracted out the hello stuff into the ZeroMQ response and so it wasn't that necessary since we decided to have as much traffic encrypted as possible. It doesn't have a lot of utility anymore.