Improved semantics for BoundedBlockingQueue

 - Blocking methods lock interruptibly
 - drainTo can no longer drain to the backing
 - drainTo/clear now calls signalAll instead of signal

 Also made some other changes to make the code nicer (I hope!).# Please enter the commit message for your changes. Lines starting