dns: fix and test move semantic

To test the move semantic, I think from now on we
should the following:

1) make sure that all attributes are initialized when
   they are declared (either because they are class
   instances or because they are explicitly initialized);

2) make attributes at least protected to derived classes
   designed for testing could be written;

3) manually implement move constructor and move assignment
   so we are sure that the object whose state is transferred
   is left in a sane (albeit empty) internal state;

4) write unit tests for testing move semantic;

5) to this end, use 2) and follow the patterns committed
   along with this diff.
Tweak Resolver() for correctness

Make sure that Resolver() access its settings parameter using
a stdlib API that does not mutate settings.

That is, use find() + at() rather than [] + [].
Merge pull request #56 from TheTorProject/fix/dns_bugs

Fix two dns bugs