DNS monero address aliasing and seed node lookup

Note: these changes were originally made based on the upstream development branch. As such, they do incorporate some unmerged changes from development. This was kept to a bare minimum, but will need to be reconciled when development is to be merged into master.

Note 2: DNSSEC validation is not added yet, but the code that will care about a DNSSEC validity is in place for when it is implemented.

Note 3: as requested, DNS lookup will now first check the syntax of the string passed as a URL.  For now, that check is simply for a '.' in the string, but is easily changed.