Use a recursive mutex in HttpRequest.

In some error cases, libevent will call our callback synchronously, so we
need to be prepared for that (and not deadlock!).
Add a libevent::Base::Delay method, for one-off delays.