[Reviewer Matt] Implement common DNS NAPTR/SRV/A/AAAA resolution functions

Matt

This pull request covers the common DNS functions - the low-level caching resolver (and its parser) and the core NAPTR/SRV/A/AAAA record logic and blacklist logic.

I've checked this in to cpp-common as it will be needed for Diameter as well in Homestead and Ralf.

The top-level resolution logic (essentially implementing the SIP-specific rules in RFC3263) is in a separate SIPResolver class which inherits from BaseResolver and provides a single resolve API.  I'm going to check that in to sprout and will generate a second pull request for that module together with the integration logic.

I have tested this code with UTs of the SIPResolver class and with a live test application.  Those will be in the other pull request.

Mike