SERVER-15539: Properly save/restore state when yielding in M/R

This fixes a regression introduced in commit 29a700ad.
SERVER-16469 findAndModify runImpl(): improve error reporting

Previously, findAndModify ignored errors encountered in calls to
PlanExecutor::getNext() when searching for the document to modify.
Now, errors are bubbled up to the user.
SERVER-16469 findAndModify runImpl(): set limit of -1 on query

This allows findAndModify operations that include a sort to take
advantage of the top-K sort logic in the query engine.  This reduces
the memory footprint of the operation from O(N) to O(1), where N is
the number of documents matching the query predicate.
Merge remote-tracking branch 'upstream/master'