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`.
* Improves query speeds by 1~2% in my simple tests

(old pull request didn't like the force)
if DONE is true, then that means the last sequence is appended to the queue, NOT that the last sequence has been consumed.