Refactor matchingDocument into separate method on Matcher's prototype, cache it.
Initialize Matcher._matchingDocument in the constructor.

To declare it explicitly to humans and JITs.
Glasser's comments

- use startsWith for strings rather than x.indexOf(y) && x[y.length] === '.'
- more comments with examples
- consistent naming isSimple => simpleRange, simpleInequality, etc
Merge branch 'oplog-selector-modifier-operators' into devel

- Cache the matchingDocument on Matcher
- Minor cosmetic changes