reworked findOne(), support empty .find() call to get all

findOne() now accepts mongo query similar to find(); collection.find()
without a query object now returns all records; $contains op on indexed
property now ignores the index; minor optimizations