Allow to use custom response class instead of HttpResponse

This allows to take control over response processing and, for instance, customize decode logic for `.read` method.