Create factory for HTTP client

Various developers might need to tune the options of the HTTP
client. SlmMail gives access to the HTTP adapter and the options
via a configuration key.

The HTTP client is now created with a factory and injected in the
abstract service. If the client is not injected, the service is
still capable of instantiating a default HTTP client itself.