Make `f(await(completedFuture))` execute `f` synchronously

A worthy optimization, suggested by @danarmak.

Closes #73
What happens if:
~~~scala
implicit val someEC = …
async {
  // run on EC
  implicit val someOtherEC = …
  h(await(Future.successful(g(await(Future.successful(f)))
}
~~~