Add jline2 to SBT library dependencies.

JLine is a Java library for handling console input. It is similar in
functionality to BSD editline and GNU readline:
https://github.com/jline/jline2
Don't show password in plain text.

Use jline's ConsoleReader.readLine(Character) which reads the next line with
the specified character mask.
Add tab completion of action names to GameClientConsole.

Use jline's Completer to support tab completion of action names.
Make GameClientConsole take the base URL as an argument.

If no base URL is given, http://localhost:9000 is used by default.
Get the list of action names by parsing routes file.

Don't hardcode action names in GameClientConsole. Instead, parse routes file
and get the list of action names for auto completion.
Introduce BeyondJavaScriptEngine.

BeyondJavaScriptEngine is responsible for execution of JavaScript.
Make GamePluginWorker take an instance of BeyondJavaScriptEngine.
Extract initialization of BeyondGlobal as init method.
Make it possible to pass a BeyondGlobal instance to BeyondJavaScriptEngine.
Add BeyondShellGlobal.

BeyondShellGlobal is a subclass of BeyondGlobal which provide additional
features for shell console. Currently, only quit is added.
Add JavaScriptShellConsole.

JavaScriptShellConsole is an interactive JavaScript shell.
Make it possible to set an ErrorReporter to BeyondContextFactory.
Use TotalErrorReporter in JavaScriptShellConsole.

TotalErrorReporter intercepts exceptions and prints them to stderr.
Add tab auto-completion to JavaScriptShellConsole.
Add load function to BeyondShellGlobal.

load is defined as a JavaScript function which loads and execute a set of
JavaScript source files.
Install require unconditionally.

Currently, require is installed only after loading the main script. Change the
behavior to install require unconditionally so that JavaScriptShellConsole can
use require.

This patch also changes BeyondJavaScriptEngine to take plugin paths as an
argument because JavaScriptShellConsole can't access
BeyondConfiguration.pluginPaths.
Add util.format API.

util.format supports the same format as node.js.
The callback function of replace is copied from node.js.
See https://github.com/joyent/node/blob/master/lib/util.js

This patch also adds plugins/lib to the plugins path.
Add console library.

console has five methods for logging: log, info, warn, debug and error.

In Rhino, these methods must be implemented with variable length arguments. But
this is not possible in Scala because Scala implements variable length
arguments with Seq which is not compatible with Rhino.

To circumvent this limitation, changed console to pass a string after
performing format conversion in JavaScript.
Add event.track API.

This API is for logging game events in JavaScript.
The first argument is tag, and the remaining arguments are messages.

Messages are logged in one of the four form:
 - Object -> message itself.
 - Non-object message -> { "message": message }
 - Multiple messages -> { "message": [ message1, message2, ... ] }
 - No messages or message are null or undefined -> {} (empty object)
Make GameEvent print tag name.