First PR of many in the p2p refactor.
This brings CNetAddr/CSubNet/CService one step closer to being dumb storage structures. By forcing addresses to be resolved elsewhere, the implementation details are free to change. In particular, this is necessary for making the resolves fully async, which is necessary in a model in which the entire connection process is asynchronous.
The DNS seed TODO could be fixed more properly with something like this: https://github.com/theuni/bitcoin/commit/792b0f5da618ea51ecd7b21db633faa6743c1e68 (an ipv6 range would probably make more sense, though), but I’ll leave that for another PR.