Add dns resolver

This pull request adds a DNS resolver based on libevent's evdns resolver.

Compared to the resolver used by OONI, this one is quite limited; however, the implemented features are more than enough to implement all the tests that we have committed to implemented.

In its basic form this code is suitable for resolving DNS names for connecting to remote hosts, etc.

There is also the possibility, however, to specify advanced resolver options (namely, use alternative servers, limit the number of retries of DNS queries) and this should allow to implement a basic OONI's dnst.
> Public methods should have a better docstring.

Ok. I will add doxygen style comments for public methods on top of the current pull request.

> Also is there no possibility of passing the timeout value?

At the moment, no. I will search for the simplest way to implement this, and commit this on top of the current pull request!

AFAICT from a cursory look at `evdns`, it seems easy to implement this in igth::DNSResolver() constructor [using the related evdns option](https://github.com/bassosimone/libevent/blob/patches-2.0/evdns.c#L3401).
> What is the request timeout value by default?

It is [five seconds](https://github.com/bassosimone/libevent/blob/patches-2.0/evdns.c#L3877).