Consume the entire request before proxying to avoid breaking clients.

If we break the connection right after we have received the headers, clients actually can not get the response back,
as they expect to finish writing first. We can later optimize it to discard the input if we know that we would be
throttling client, but that does not matter at this stage

This commit also introduces logging improvements, treq timeouts support and configurable cassandra connection settings