Add a sbt task to run JavaScript console.

The task launches JavaScriptShellConsole in beyond.tool.
Add orderBy option to find method.

This patch adds orderBy option to find method. Now you can use find
method like below:

collection.find(query, { orderBy : { field1: db.ASC, field2: db.DESC } })

It will return the sorted result (applying field1 ASC first and applying
field2 DESC in the set that has the same field1).

Parsing orderBy option seems too difficult to read because of backward
compatibility. As before, the second argument will be used as the limit number
if it is a number. And the second argument will be used as find option if it
is a JavaScript object. If you want to use orderBy and limit option at the
same time, use it as in the following:

collection.find(
    query,
    { orderBy: { feild1: db.ASC, field2: db.DESC }, limit: 10 }
)
Add gulp.js

gulp.js is a streaming build system of Node.js community.
With gulp.js, we can define tasks to help the project lint,
preprocess and test JavaScript or other front-end source files.
Add gulp-jshint task.

The task is to lint JavaScript sources including plugin files and
gulpfile itself.
Lint plugin files.

With gulp-jshint.
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.
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`.