dns: stop passing resolver to Request()

This was done only to pass the original resolver to the Response
object, but this is actually not needed and also confusing, because
one may thing that this allows to actually set the resolver.

Discussed with @hellais.
Bind a resolver with its requests

Strengthen the ties between a resolver and the requests
generated by such resolver.

Now, requests have the same lifecycle as the resolver, and
one does not need to keep track of them.

Actually, one does not even see them, as they are managed
by the resolver under the hood.

Reduces the amount of pain generated by our DNS API.
dns: do not pass around unused values
Fix dns tests to run on valgrind on slow machines
.gitignore: update dns tests name
Merge pull request #53 from TheTorProject/feature/dns_usability

Make DNS code easier to use