This includes the following steps, which must be committed together:
- Add lazy BSON shredding.
- Change DocumentStorageIterator to accommodate the above lazy strategy.
- Necessary changes in ValueElement to accommodate the above. In ValueElement we will have to keep track of whether the element represents an insert, update, delete, or cached field lookup.