Fix aggregation locking

This commit just changes aggregation from being default-locked and
yielding to being default-unlocked and taking the lock when needed.
It currently grabs and releases the lock once for each document
extracted from the source collection. A latter commit should introduce
batching which will cut down on the locking overhead.
SERVER-10134 Report errors during GetMore processing

This is necessary for SERVER-5932 (aggregation returning cursors)
SERVER-5932 Aggregation returning a cursor

related tickets:
SERVER-8261 System for commands to return cursors
SERVER-10165 aggregate() helper should return cursor
Fix bug in Sorter when spilling to disk