Expansion to the utilities provided in FutureUtils
This adds more ways to get a ListenableFuture for a collection of futures.
In addition we only need an iterator, and not a whole collection.  This allows us to tollerate collection modifications while we are setting up the resulting future.
Bit of unit test code duplication I forgot to reduce in the last commit.
A couple additional comments to make the code review clearer
Little expansion of the unit test coverage (making sure canceled futures are handled correctly)
Merge pull request #64 from jentfoo/unstable_staging

Expansion to the utilities provided in FutureUtils