Virtual classes for HttpManager

Converted `HttpManager`'s instantiations of `HttpClientSettingsGroup` and `HttpListener` to use the virtual class pattern, so it is easily overridable without having to duplicate the rest of the functionality in the class. 

This will be handy in my websocket implementation, which currently duplicates the entire source code of HttpManager just to override these two instantiations