Add Future.firstCompletedOf function.

firstCompletedOf returns a new Future to the result of the first future in the
list that is completed.