Correct issue with reusing a parser containing MemoMismatches

The current implementation of MemoMismatchesMatcher incorrectly stores the state of the match as a mutable field of the Matcher. This means that consecutive (or concurrent) parse runs using the same matchers will possibly fail to match at positions where they should.

This patch corrects this by storing the memo in the MatcherContext.