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)
at this level, i think we should rely on timeouts at the http-client level as we did before.
We could also add QueryTimeout handling as well if we feel it is necessary in the case of network issues.