Replace AppendableByteArrayInputStream in DirectDruidClient

* Replace with SequenceInputStream fueled by an enumeration of ChannelBufferInputStream which directly wrap the response context ChannelBuffer
* Added zero-length byte array when DirectDruidClient is done. This prevents an odd race condition on `done`.

(old pull request didn't like the force)
If we're relying on the query watcher to handle all timeouts, I'm fine with removing this. It is most useful during debugging / unit testing when things are going wrong and you want to timeout instead of just hanging forever.