Take advantage of Guava's ListenableFuture

- Add "runTask..." methods to AsynchronousScheduler that accept Callable as task parameter

- Make use of ListenableFuture to simplify retrieval of task computation results.
I don't have any comments, but I like how this line sounds.