Fix things -- namely TCP conns not getting recycled

also tried to refactor, will add some inlines w/ notes
i am 90% sure this is all that needs to be done, but admittedly the removal of that previous block makes me unsure. I _believe_ the request body from `NewRequest` will be valid on tries 2 and 3 but I need to somehow test it to be sure. It is not an `io.Closer` so the `[]byte` representing the body _should_ remain unchanged, but since it is a `Reader` I think it may need testing. If anybody knows objectively, it would be nice.