Minor patch for custom transports and HTTP error handling

Makes the transport properly support custom transports and not just specifically http.Transport by switching to http.RoundTripper interface

Errors on non-2XX HTTP response codes before it tries to read the response body