Added a more efficent immediate future implementation.
By not depending on the SettableListenableFuture we can avoid synchronization on .get calls, and with calling of listeners.
Merge branch 'master' into unstable_staging
Fix for two checkstyle warnings I missed before pushing
Merge branch 'master' into unstable_staging