=act #3557 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!).
Merge pull request #1630 from gakesson/master

Improved semantics for BoundedBlockingQueue
Merge remote-tracking branch: upstream/master