dns: collect data usefult to compile OONI reports - step 1
Teach DNSRequest accessors to return OONI-report-friendly data
Fix eab20a0da... doofus

Lesson learned: "fixing" valgrind warnings can be very dangerous,
unless you think carefully at what you're doing.

In this case, the delete that I removed in eab20a0da... was used to
unschedule the request while it was in flight, and see whether something
bad happened becuase of this.

So, in eab20a0da... I fixed the leak but fucked the test.

Problem was, `delete` was used to unschedule the request, which is
implicit and not explicit, so more difficult to review.

To improve the code, I've added the `cancel()` method that only
cancels a pending request.