Expanded the functionality for FutureUtils
This now allows you to create a ListenableFuture that will be satisfied once all futures in a provided collection have completed.