Build fix on Mac OS X.

Legacy Java 6 for Mac OS X has tools.jar, but now we use Java 7 or above
version.  so there is need to add tools.jar on Mac OS X.
Add task to test plugin JavaScript APIs.

Implement a sbt task to test plugin JavaScript APIs. The test framework
is written in JavaScript and placed in `plugins/test/lib`. The task
finds test cases in the `plugins/test` directory. By bdd.js, the test
cases are parsed as a task tree and then launched. The result is
reported by TestReporter written in Scala.

An example test case, `example.js`, is added in `plugins/test` to show
how a test case should be implemented.
Add assert.async for plugin test.

assert.async is a shorthand for the try-catch cluase of
asynchronous tests.
Change Scalastyle to work with Travis CI.

Scalastyle was intended to work with `sbt test`, but it didn't work.
This commit removes the lines in build.sbt for it and just adds the
command in the Travis CI configuration file.
Fix sep and delimiter properties in ScriptablePath.

JavaScript function's static properties can't be defined with @JSGetter.
We should define the properties in the `finishInit` function.
Add test case for ScriptablePath API.

It can be tested with `activator plugin-test`.
Add ScriptableHttpClient.

ScriptableHttpClient is the module to send HTTP request from the Beyond
plugin. It refers to Node's SuperAgent package for its API design.

The test case is added as plugins/test/http-client.js
Fix the bug that reference field is not working.

I changed to use ScriptableObjectId instead of using ObjectId itself for
reference field. But I missed to fix here.
Load configuration from current path if there's no Play app.

There could be no Play app when it's for tests or console. At that time,
the same configuration still need to be provided to modules.

This patch changes BeyondConfiguration to find the configuration
from the current app path.
Fix encoding bug in ScriptableFileSystem.

The `string` and `write` methods of scalax.io's Resource implicitly take
a `Codec` instance, not a string.
Add test case for ScriptableFileSystem API.

In order to test the module, some assets are added.
Return undefined, if the field is optional and no values are set.

Currently, getting the value from optional field occurs error if value
is not set. It's a bug.

This patch makes it return an undefined.
Fix typo. ObjectID -> ObjectId.

The name had been changed after
cf55bf4e36d5c9138e126b6df4dea519dccd1771.
Add a test case for ScriptableBuffer.

It tests every method and property in the module.
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.