Wip sip23 √

@richdougherty Expanding my remark above a bit.

A single map per EC is insufficient -- the local is in the context of a *thread of execution with respect to Future*, not a global set. This means that forking has to be supported (which is exactly what [Twitter's locals](https://github.com/twitter/util/blob/master/util-core/src/main/scala/com/twitter/util/Local.scala)

The upshot is that these Locals are dual to thread local storage where a naked statement returning a Future is equivalent to forking a thread, and `flatMap` is equivalent to sequencing (semicolon) -- i.e. the definition that you want.