This commit moves the FutureFuture and FutureListenableFuture implemenations out to the future package.  This will allow them to be reused in the TaskSchedulerDistributor
This should resolve #35.  Expanded the distributor to handle futures as well (this was actually easier than I expected)