SI-7383 - call ExecutionContext.prepare in Future.apply

https://issues.scala-lang.org/browse/SI-7383

Review by @phaller, @adriaanm

ExecutionContext.prepare is meant to be used as a way to capture context like ThreadLocals etc and then reinstating them when the the Runnable is executed.