http: Return true on empty writes, not false

Otherwise, writing an empty string causes the whole program to grind to a halt when piping data into http messages.

This wasn't as much of a problem (though it WAS a bug) in 0.8 and before, because our hyperactive 'drain' behavior would mean that some *previous* write() would probably have a pending drain event, and cause things to start moving again.

/cc @substack