One executable per Catch-based test

As discussed in #35, refactor Catch-based tests so that an
executable is compiled per each test file.

This way the output of `make check` is less surprising since
`7 tests have passed` as opposed to `1 test has passed`.
Update .gitignore to ignore more stuff
test: rename buffer_tests.cpp to buffer.cpp

No other test has the `_test` suffix. In the interest of uniformity,
so let's give to the buffer's test program a better name.
test/common/bufferevent.cpp: remove uneeded include
test: batch of cosmetic changes

More spaces around includes. Also add three line explanatory comment
to a file that was missing such comment.
Merge pull request #36 from bassosimone/feature/refactor_catch_based_tests

Refactor Catch-based tests: one executable per test
Add dns.hpp, the DNS resolver
dns.hpp: note that there is more work to be done
dns.hpp: allow to specify the nameserver
dns.hpp: add namespace
dns.hpp: check return value of resolve_ipv4/ipv6
dns.hpp: implement reverse DNS lookups
dns.hpp: make code easier to grok

Refactor the function processing the results to avoid the annoying
code organization that in some cases you return during the switch
and in some cases you fall through.
dns.hpp: document the code
dns.hpp: more documentation
dns.hpp: one attempt by default, allow to tweak that

Add an attempt string parameter, with default value "1", allowing
to control how many attempts EvdnsBase makes to resolve.

We use "1" by default becase OONI's tcpt does just one attempt
to resolve and then reports an error.
Add empty regress for net/dns.hpp