Added interface BlockingDeque, and implementation for ExecutorCompletionService

I had to implement a blocking queue for ExecutorCompletionService.  Right now LinkedBlockingQueue just synchronizes and depends on LinkedList implementation.  But I wrote a very complete unit test suite so we if we want to put a more concurrent design here, we have a complete test suite to verify against.