Fix style errors.

Remove a meaningless space.
Share GlobalScope among GamePluginWorkers.

Currently, each GamePluginWorker has their own ModuleScope. It makes the
recovery of scope easy because simply restarting the worker recovers the scope.

However, we implemented the timer API and will implement the Future API in a
way that these APIs don't ensure the callback is executed in the same worker.
So we decided to share the scope among GamePluginWorkers.
Seal standard objects.

Currently, BeyondGlobal doesn't seal the standard objects(e.g. Object,
String, Array, JSON and etc.).

This patch makes BeyondGlobal seal the standard objects unconditionally.
Add an interface to BeyondContextFactory to access BeyondGlobal.
Pass an ExecutionContext instance to BeyondJavaScritEngine and BeyondContextFactory.

This execution context will be used by the Future API.
Introduce the Future API.

There are 3 functions to create a Future:
- create
Create a new future with the given callback.
The callback will be execued in the execution context of the engine.
- successful
Create a future with the given value.
- failed
Create a future with the given error message.

This patch adds onComplete, onSuccess and onFailure methods to Future. These
three method take one callback function, but the argument type of the callback
function is different. These three methods return itself to help method
chaining.

See https://github.com/SollmoStudio/beyond/wiki/Beyond-Future-API for
more details.
Move JavaScriptTimerProvider to provider package.
Introduce JavaScriptConsoleProvider.

Currently, JavaScript console API uses typesafe logging library.

We determined to make JavaScriptConsoleProvider and implement the
provider who uses the engine because JavaScriptShellConsole cannot use
typesafe logging and logging in console doesn't make sence.

This patch is the first patch to use JavaScriptConsoleProvider.
Implement JavaScriptConsoleProvider for GamePlugin.

GamePlugin will use typesafe logging library.
Implement JavaScriptConsoleProvider for JavaScriptShellConsole.

JavaScriptShellConsole will use Console.
Pass JavaScriptConsoleProvider to engine.

Conflicts:
	core/app/beyond/engine/javascript/BeyondContext.scala
	core/app/beyond/engine/javascript/BeyondContextFactory.scala
	core/app/beyond/engine/javascript/BeyondJavaScriptEngine.scala
	core/app/beyond/plugin/GamePlugin.scala
	core/app/beyond/tool/JavaScriptShellConsole.scala
Add ScriptableConsole.
Use ScriptableConsole instead of PluginConsole.

Conflicts:
	core/app/beyond/engine/javascript/BeyondGlobal.scala