Make some async api work on Scala.js and Native (#12)
* Move API only working on JVM to JVM specific code
* Move shared JS/Native code to src-js-native
* Use package private traits to add functionality
This implements a different approach which is NOT binary
compatible, but is source compatible and avoid duplicating code.
The idea is to have mixins with different implementations
for every object or trait that has functions existing on JVM
only
* Fix Js/Native and make ContextSimpleCompanionObject private