Refactor for new network types

Refactored the NetworkNode class to get ready for more types of networks
to be added. Also added an approval system so that when a node tries to
connect, it has time to be processed in order to setup the network to
handle it.