Extract HTTP::Connection ala Reel (WIP)

This is a work-in-progress commit to structure the connection management and
pipelining closer to what is presently used today in Reel.

Much of the code is modified copypasta from Reel. I wish there were a more DRY
abstraction for this sort of thing (reusing client/server parts of HTTP
libraries) but if it exists it presently escapes me.