NoOneIsIrreplaceable - creating a basic http communication layer that ca...

...n be replaced in tests or by end users.
in the `http_sender` below - it's mainly for testing but also can be provided by the end user if they wanted to use their own http stack or prepare the http request differently (we do have a similar extension point in our .NET client but I have not seen anyone but us (in our tests) really using it)