Http outgoing part1

This is the first part of the HTTP OutgoingMessage refactoring that I'd like to get done.

First, make hex and base64 writes behave properly.  (This also needs to be backported to v0.10.)

Next, make http.OutgoingMessage objects consistent with other Writable streams in terms of when they emit `finish` and take callbacks for write/end.

The next step is to bring some rationality to our set/getHeaders mechanisms, but that is less pressing.

Performance impact is nil, according to my tests.  Just noise, and split evenly in both directions.