Backport `Future#timed`

As of the discussion in scalaz/scalaz-stream#23.

This currently breaks our rule of not adding new methods to un-sealed traits. However, `Future` was meant to be sealed, and extending it would break some of its methods anyway.

Ping @pchlupacek. Confirmed that the tests of scalaz-stream compile and run fine against this revision, with just one modification (changing `x.milliseconds` to `x`).