Makes DNS tests non dependant on the network

This adds a new Net::DNS::Resolver subclass called Test::FakeResolver, which reads locally cached static DNS results, rather than querying the network.  This is desirable for unit tests for a number of reasons:

1. It makes tests not depend on the network, which may not always be available in some build/test environments
2. It makes tests not depend on DNS service which may not always respond as expected, or quickly, depending on the environment (notably certain ISPs return positive results in lieu of NXDOMAIN results)
3. It makes tests run much faster!

I began this work to address #113 , but its impact goes well beyond those tests which were failing on my machine (due specifically to my ISP's munging of NXDOMAINs).
I see this more as a 'handle DNS testing well' PR. The change to Qpsmtpd/Base.pm was only necessary to add a testing seam.  I think we can use that to our advantage for caching and other improvements, but I see that as feature creep for this testing-centric PR, personally.