Add JavaScriptTimerProvider.

JavaScriptTimerProvider will be used in the next patch to seperate timer
implementation from engine.
Implement timer for GamePlugin.

Implement JavaScriptTimerProvider with Akka actor.
Implement timer for JavaScriptShellConsole.

Implement JavaScriptTimerProvider with java.util.Timer.
Seperate JavaScript timer implementation from engine.

Currently, JavaScript timer strictly depends on Akka Actor system although
other parts of JavaScript engine doesn't depend on Akka.

This patch seperates the timer implementation from engine. After this patch,
BeyondJavaScriptEngine takes a JavaScriptTimerProvider instance.
Seperate JavaScript engine package.

Rhino helper classes and JavaScript library extensions are moved to
beyond.engine.javascript package.
Change the package paths of JavaScript files.

The previous patch has a bug. Console and Event library use hardcoded package
paths, so these paths must have been changed too.
Move beyond package to a sub-project.

If beyond package is in the base projet, sub-projects cannot depend on beyond
because it creates a circular dependency. The base project aggregates the
sub-project and the sub-project depends on the base project.
Update native library path.

The native library path needs to be updated because Beyond package is moved to
core sub-project.
Extract user and session management as a sub-project.

logig and logout URLs are changed:
- /session/login -> /user/login
- /session/logout -> /user/logout
Move beyondAdmin to modules/admin.
Share GlobalScope among GamePluginWorkers.

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

But we implemented timer APIs(setTimer and setInterval) and will
implement Future API. These API don't ensure the callback is executed in
the same worker. So we decided share the scope among GamePluginWorkers.

This patch also makes GamePlugin restart when one of the
GamePluginWorker occurs exception to recreate engine.
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 because we
decided to share the scope between workers.
Add interface to access BeyondGlobal with BeyondContextFactory.
Add ExecutionContext to JavaScript Context.

Conflicts:
	core/app/beyond/engine/javascript/BeyondContextFactory.scala
future