Stop synchronizing on the for s.c.Future

A reimplementation of how blocking Awaits are done for Futures,
by implementing it as CountDownLatches for the reader and
using the callback mechanism, we avoid any monitor usage for
the majority of the cases, which are the ones where Await is
not used, which is what we recommend.