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.
Fix bugs in collection.find().

QueryOpts is immutable, skip() and batchSize() doesn't change itself, it
creates new one.

Both skipN and batchSieN has default value 0.