PLAT-783: HttpClient and HttpClientImpl no longer an AsyncEventSource

This change makes HttpClient and HttpClientImpl independent from the
underlying event loop. HttpClientV1 has been adapted to use an internalized
MessageLoop derivative, named "SingletonLoop". The latter has the
particularity of not owning the pointer to its sources, which enables said
sources to registered and unregistered themselves within their implementation
code.

This change modifies the interface to HttpClient in a less than trivial way:
- a new "enableDebug" method has been added to HttpClientImpl, replacing
  AsyncEventSource::debug
- MessageLoop can no longer register HttpClient instances