Do not convert to NativeObject if it is a primitive type.

Currently, each field type of Document is always 'object' instead of the
expected type (e.g., 'string', 'number' and 'boolean') because
ScriptableDocument converts it to NativeObject.

This patch makes ScriptableDocument return the primitve type with no
conversion.  Rhino engine will automatically convert Number, Boolean and String
because BeyondContextFactory set javaPrimitiveWrap to false.
Don't share emptyUpdatedValueTable across multiple ScriptableDocument.

Currently, ScriptableDocument's updateValues field accidentally shares a
single UpdatedValueTable because emptyUpdatedValueTable is a singleton defined
in ScriptableDocument's companion object. Move it to ScriptableDocument class
so that each ScriptableDocument instance has its own UpdatedValueTable.

Also move UpdatedValueTable type to ScriptableDocument class because it is used
only within ScriptableDocument class.
Expose objectID as objectId in JavaScript.

Follow the mongo shell's naming convention.
Extend newObject and newArray methods of rhinos Context.

Currently, argumens have to be wrapped with Array when using newObject
and newArray method. It makes code verbose.
Refactoring code to use ContextOps.

The previous patch impelent ContextOps to extend newObject and newArray
methods.

This patch makes code use ContextOps.