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

A worthy optimization, suggested by @danarmak.

Closes #73
Yes, the async block as a whole is always run on the EC. This optimization just means that `f`, `g`, and `h` in the example below will be run synchronously within that EC:

```scala
async {
  // run on EC
  h(await(Future.successful(g(await(Future.successful(g)))
}
```