Extracted request into a method object.

This will open the door for much more change in the future.

Currently a work in progress. I want to break up a few more things, add move persistance of connections back outside of the Request object, and name it better. But it's a start.

:heart: :heart: :heart: @evanphx :heart: :heart: :heart:

(Originally pull #282, till I did some silly git shit.)