Improvments for scheduling on a limited sub pool.
This provides performance improvments for scheduled (and recurring) tasks by attempting to run on the delayed runnable thread, and only queuing if forced to do so.  Previously this would always due the worst case situation and queue after the delay has expired.  This commit also reduces code duplication by allowing the PrioritySchedulerLimiter extending from the SchedulerLimiter.
I also expanded and improved the unit test code, to make sure we get full coverage.
Merge pull request #57 from jentfoo/improved_scheduling_on_limiter

Improvments for scheduling on a limited sub pool.
This adds two new features.  The primary one being ListenableFutureResult.

ListenableFutureResult makes it easy to asynchronisly return single results, when the result may have been built piece by piece.
ListenerHelper was created to reduce code within threadly, but can be useful for anyone trying to build a listener pattern, where those listeners must be called.

Of course unit tests were added to make sure we keep having great coverage on everything.