PriorityJobQueue: converted executor services to ListeningExecutorService, and simplified waitForFuture by using Futures.dereference()