Profiling

Fix connection pooling behavior by reading responses from endpoints sooner.
    
The faster we read response from endpoint and close the body, the sooner it will be released back to the pool and reused.
In addition to that we improve copying by implementing optimized WriteTo method

io.Copy doesn't trust this and returns `io.ErrShortWrite` if nw != n && errw == nil. You could do that here, too.