Added implementation and testing for "FutureCallback"
It was often that we were just using the listeners to know when to get the result from the future.  This simplifies that interface into a "FutureCallback".  You can now add a future callback to any ListenableFuture if you wish.