Add bodyAsJson getter to Request.

Rename Request (ScriptableRequest) to RequestInternal and wrap it with Request
constructor in JavaScript. Implement bodyAsJson in JavaScript by parsing the
JSON string returned by bodyAsJsonString.
Change the result type of ScriptableCollection.insert().

Currently, insert method returns Future of LastErrorMessage. But the inserted
document(including object id) is more nedded on success.  This patch changes
the result type of insert method to Future of ScriptableDocument.
Add type aliases for JavaScript types.

- JSArray: Array[AnyRef].
- JSFunction: org.mozilla.javascript.Function