[#2] Update MIM find_and_modify to return None like pymongo (now) does

Signed-off-by: Rick Copeland <rick@arborian.com>
[#2] Add unit test

Signed-off-by: Rick Copeland <rick@arborian.com>
[#3] Add date support to MIM

Signed-off-by: Rick Copeland <rick@arborian.com>
[#3] Add better tests for MIM date support, verify conversion accuracy between Python and JS

Signed-off-by: Rick Copeland <rick@arborian.com>
Updated Collection.insert to use DuplicateKeyError
[#4] Setting a FieldProperty to the same value will no longer "dirty" the object

Signed-off-by: Rick Copeland <rick@arborian.com>
fixed function topy in mim's mapreduce

- add support for basestring and spidermonkey.Array
- map builtins name conflicts with map argument
Add failing test for MIM reduce-into-collection

Signed-off-by: Rick Copeland <rick@arborian.com>
fixed mim mr with reduce output
[allura:tickets:#5024] add cursor hint support to mim

Moving the collection parameter to be first, to match the pymongo Cursor
definition, and _iterator_gen at the end
raise SkipTest for map/reduce tests when spidermonkey is not installed
better handling of non-bound Sessions
[allura:tickets:#5080] get() uses kwargs, but find() doesn't so protect against accidental find(foo=bar) queries, like we do for remove()
Improve support for BSON booleans in MIM

Handle BSON comparisons involving boolean fields.  This change
enables MIM to support sorting by a boolean field.
Add support for $elemMatch

Signed-off-by: Rick Copeland <rick@arborian.com>
Fix issue with MIM not enforcing _id when using fields option, this lead to the creation of new objects in unexpected cases
Support for fields in ODM queries, makes possible to update enties retrieved with only some fields specified
Update to mongoclient, remove support for MasterSlaveConnection and ReplicaSetConnection

Signed-off-by: Rick Copeland <rick@arborian.com>
Add support for doc.m.find_and_modify, addressing #6, #7

Signed-off-by: Rick Copeland <rick@arborian.com>
Make __getitem__ clone the cursor, fixing #8

Signed-off-by: Rick Copeland <rick@arborian.com>