Convert between BSONValue and JavaScript value 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.
Don't copy sigar.
Change result type of ScriptableCollection.save() to ScriptableFuture.
Implement setter function for ScriptableDocument.

A setter function of ScriptableDocument sets the value and returns
document itself.

If some document has field named someField, there will be a function
named someField. This function can be used in two ways.
 - Get the value of someField when called without an argument.
 - Change the document with changed someField when called with one
   argument.

And this patch also renames currentValueInDB to plural form.
Implement ScriptableCollection.save().

This method will update the document.