Changes:
- Separated the network related code into the new library: Virtual Socket Layer (VSL)
- Added many new features.

Current progress:
- Peer and hubs contact details need to be shared across the network. However there need to be rules that dictate what information is shared.
- Enable connecting to peers who are behind NAT. This will pave way for a robust and versatile socks proxy system.
- SOCKS proxy needs to be made to work properly (this can be done once we can share peer data and get a more decent relay database).
- Make it possible to listen on ports remotely - this will pave way for building applications that use remote listening to be able to listen even when they are behind NAT and have no way of accepting incoming connections otherwise.