Correct issue with reusing a parser containing MemoMismatchers

The current implementation of MemoMismatchers 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.