Added a second unit test to verify shutdownNow seperate from shutdown
Give the high and low priority consumers different thread names
Call shutdownNow instead of just shutdown since many unit tests may be expecting an immediate hault
Only let the function redirect once
Reduced code duplication...this reduces our unit test count, but it greately reduces our duplication of code
Little more unit test coverage, and reduced code duplication between the unit tests
Add two unit tests for these fail cases
More unit test coverage, and implemented long waiting TODO note
This fixes #40 by override the setParentFuture function from FutureListenableFuture.  It requires an instanceof check, but such is life.
Unit tests to cover the added verification I added for issue #40
Merge branch 'master' into experimental-merge_TaskExecutorDistributor_keys