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

this is equivalent of bytes.MinRead constant in standard package. I've tested a couple of versions and this one seems like a good choice. Having said that, I will tune the implementation to choose the size based on the overall length, just want to keep it separate for now.