Add a factory method to ScriptableFuture.

Add a factory method to remove repetitve ScriptableFuture creation code. This
factory method will be used internally.
Add DB API stubs.

This patch only adds interfaces. Methods will be implemented soon.
Implement Query methods.

This patch implements query methods except for where. See
https://github.com/SollmoStudio/beyond/wiki/Beyond-DB-API-Query for more
information.
Implement Schema constructor.

See https://github.com/SollmoStudio/beyond/wiki/Beyond-DB-API-Schema for
more information.
Implement ScriptableDocument constructor.

This constructor is used internally. Users are not allowed to construct
an instance directly. A user must get a ScriptableDocument from
ScriptableCollection.
Implement ScriptableDocument.objectID.

The objectID is read only property that contains the ObjectId of a document.
Implement ScriptableCollection.insert() method.

Insert method receives a JavaScript object and returns a ScriptableFuture.
Implement ScriptableCollection.find() method.

Find method receives a ScriptableQuery and returns a ScriptableFuture gives
Array[ScriptableDocument].
Implement ScriptableCollection.findOne().

FindOne method receives a ScriptableQuery and returns a ScriptableFuture which
gives ScriptableDocument. This method returns only the first document unlike
find method.
Add getter to ScriptableDocument.
Add some DB API(insert, find and findOne) examples.

This patch adds examples to show how to use DB API.

There are three examples:
 - insert
 - find
 - findOne

To run insert example, send POST to /plugins/insert/{key}/{value}.
This example inserts the key and value to example.keyValue collection.

To run find example, send POST to /plugins/find/{key1}[/{keyN}]
This example finds all the documents whose key is one of keyN.

To run findOne example, send POST to /plugins/findOne/{key1}[/{keyN}]
This example finds the document whose key is one of keyN.
Convert between BSONValue and AnyRef with field information.

Currently, ScriptableCollection doesn't consider field type when saving
the data. It causes type error on reading even the data is convertable
to required type.

This patch makes ScriptableCollection convert the data to BSONValue with
Field.
Support Date type on DB API.

Currently, there is a bug so Date type is not saved.
This patch fixes the bug and add example of saving Date.
Convert to requested type when read document from database.

Currently, ScirptableDocument reads data only if the saved data's type
is exactly same as the specified type in schema.
This patch makes ScriptableDocument convert the data with Rhino engine
if available.