This came to a head as part of: #377
The entire string based system we are currently using for addresses, along with utility functions in Network::Utility, is a mess. We should clean this up so it properly supports TCP vs. UDP, is an interface, etc.
This will probably also help us more easily support IPv6 in the future.