Explicitly nulling mongocursor object on C++ side when calling reset to prevent Resource name error
Added test case showing explain doesn't work
Reset cursor resource to null instead of variant
Specify class context when resetting cursor resource property
MongoCursor::reset() should revert started_iterating to false
MongoCursor::addOption() should add special $query wrapping when needed

Additionally, use this method internally when assigning options to reduce duplicated logic.
MongoCursor should implement Iterator
Use null/boolean Variant constants

These are defined in HHVM's type-variant.cpp
MongoCursor::key() should return iteration offset when no _id is available

Adds support for array and object values to be consistent with hash-handling functions in the PHP driver. When the document has no "_id" field (e.g. explain output), the iteration offset of the cursor should be used. This means we need to track the value internally and increment and reset it in next() and reset(), respectively.
MongoCursor::current() should return null when there is no result
Fix getNext() return type to be consistent with next()
Fix MongoCursor::explain() to work around native method quirks
Merge pull request #53 from 10gen-labs/gh52-explain

Implement MongoCursor::explain()