Adjust -v usage message
dns: Add short circuiting for immediate errors

This eliminates the problem of calling the callback from within an
unexpected stack frame. It's common for the callback to modify some sort
of state of the private data, and functions calling u_dns() or u_rdns()
(and thus request()) will be expecting the callback to be called once
the caller has returned. By the previous method, this was not always
the case. However, registering a timer with a very short timeout allows
us to call the callback from a separate stack context, mimicking a real
DNS result.  (Nonzero timeout is fine. DNS requests are never instant,
so our short circuiting doesn't need to be either.)