First pass at some sort of abstraction over HTTP PUT streaming.

This'll make life easier for EC stuff because we can easily add
methods for getting the 100-continue headers, sending multipart
documents, et cetera.

If we want to get crazy, this would also be a good place to swap out
this one HTTP-over-TCP thingy for some wacky HTTP-over-0MQ thingy or
some in-process wrapper for swift.obj.server.ObjectController or
whatever. Or not. No pressure.

Passes functional tests, but the unit-test mocks are massively börked.

Change-Id: Ib78caabfeb8efad2bd16ad3b9588d85cb7aae7f2