Convert between BSONValue and JavaScript value with field information.

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

Currently, there is a bug in saving Date type. This patch fixes the bug and
adds an example of saving Date.
Convert to the requested type when reading a document from database.

Currently, ScirptableDocument reads data only if the saved data type is exactly
the same to the specified type in schema. This patch makes ScriptableDocument
convert the data to a compatible type if possible.
Implement remove and removeOne method of ScriptableCollection.

And add examples.
Implement Authenticated.

There is no reason to use actor for UserAction because most of the
hard works handled by UserAction are moved to GamePluginWorker
and UserAction is just used to filter logged-in requests.

UserActionActor will be removed in the next patch.
Replace UserAction with Authenticated.
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.