Fix deadlock in DirectDruidClient

Bug seems to show up when there are active queries and a large amount of shuffling of nodes
As far as I can tell, it waits on queue.take(), and the part in the http client done() tries to put into the queue, but is synchronized on done, so it waits forever waiting for take to finish before putting into the queue. I suspect this might be happening when the stream is "prematurely" closed at the end of the result (json/smile) parsing, possibly as a result of either a cancelled query or a spike in server load during ingestion of segment shuffling information causing the json parsing and inputstream handling to be very very out of sync compared to normal operation. I'm betting on the former but don't have any hard evidence.