SERVER-12886 Make non-fastmod updates perform work proportional to the update size

Before this change, modifications to:
  - Indexed fields
  - Arrays
causes the document to be re-written generating expensive I/O.

After this change I/O is generated proportional to the size of the update (in the average case).

https://jira.mongodb.org/browse/SERVER-12886