Run Play application in plugin test runner.

Many Play libraries depend on Play application. Some of them don't work
if there's no running application. There's currently none in plugin test
runner, which prevents some API working. This patch runs a default
application in the test runner to fix the problem.
Terminate MongoDB and ZooKeeper process after launchers stop.

Beyond currently launches standalone MongoDB and ZooKeeper. So, they
need to be terminated after the launchers stop.
Add test case for ScriptableCrypto.

It tests every static method in the module.
Log rhino exception with info of the file in which the exception occurs.

Currently, ScriptableFuture ignores the file info. This patch makes
ScriptableFuture log the info to help debugging.
Change logging level to debug on dev mode.
Make collection field of ReferenceField optional.

Currently, there is no way to represent the reference to itself.
This patch makes collection field optional. The reference field without
collection field will be treated as raw object id.
Run Play application in JavaScript console.

Many Play libraries depend on Play application. The same reason with
plugin test runner.
Add test case for ScriptableUUID.

It tests the basic functionality of the module.
Throw an exception when readFile can't find the file.

Currently Resouce.fromFile doesn't throw an exception when there's no
file for the provided path. According to the scala-io document, it
should do. I fixed the problem with check the file existance and throw
an exception manually.
Add GET request routing configuration to route plugin.
Add content type to response.

This patch uses plain/text as the default value of contentType, but the
play framework supports contentType inference. Fix this line to use this
feature.
Add statusCode to response.

Default status code is 200.
Modify response.js to use ResponseInternal directly.

The logic for the functionality was separated into a JavaScript and
Scala files. In this case, if we wanted to change the logic, we would
have to change both of them. This patch merged the logic in the
JavaScript file into the Scala one.

Also a test case for ScriptableResponse has been added. Some properties
have also been added to test the functionalities.
Fix regression errors by the previous ScriptableResponse patch.

This change should have been included in the previous commit. This
commit fixes a regression problem the previous commit causes.

First of all, this fixed GamePlugin to handle ScriptableResponse
directly. It originally handled it as a Scriptable object and found
the `_response` property from it.

Also, this removed the fallback type of stringify, because it could be a
JavaScript Number or null, both of which are not Scriptable.
Rename `ResponseInternal` to `Response`.

Now JavaScript's `Response` is the same with `ResponseInternal`, and
there's no need to call it `Internal`.
Modify request.js to use ScriptableRequest directly.

The logic for the functionality was separated into a JavaScript and
Scala files. In this case, if we wanted to change the logic, we would
have to change both of them. This patch merged the logic in the
JavaScript file into the Scala one. Basically, this has the same purpose
with the previous ScriptableResponse patch.
Implement test server for plugin's http-client test.

Until now, httpbin.org has been used to test the http-client module.
However, depending on a 3rd-party service makes the test unstable
because the service could be shut down or internet connection could
be cut off.

This commit implements a simple test server using Node.js's http module.
Implement ScriptableQuery.where method.

This method can get two type of parameter.
Function that returns boolean and String that evaluated value is
boolean.

See http://docs.mongodb.org/manual/reference/operator/query/where/ for
more details.
Add skip options to find.
Limit batch size on find when the limit option is set.

This is to optimize query.