Add Nondeterminism[scala.concurrent.Future].

This adds a `Nondeterminism` instance for Scala's Future.

One (maybe) controversial choice is that `chooseAny` attempts to select the first successful `Future`, and not just the first `Future` that actually completed. Does anyone have any strong opinions on which behaviour should be followed?