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
Add unittest for DNS Injection. Add debugging
Merge remote-tracking branch 'origin/feature/dns_usability' into feature/ooni

* origin/feature/dns_usability:
  .gitignore: update dns tests name
  Fix dns tests to run on valgrind on slow machines
  dns: do not pass around unused values
  Bind a resolver with its requests
  dns: stop passing resolver to Request()

Conflicts:
	.gitignore
	src/protocols/dns.hpp
Use the improvements to the DNS test API