Some minor interface improvements
I was trying to do some performance improvements (but could not quite get them working right).  These were some changes I found along the way that I wanted to maintain:
* BlockingQueueConsumer handles inheritance better by using extends and super for generics
* PriorityScheduledExecutor only needs a runnable to provide into the workers now
* DynamicDelayQueue's ConsumerIterator is a bit more efficent, and now checks for ConcurrentModificationExceptions which corrupted the traversal