(PUP-4123) Make EvaluatingParser skip evaluator cache when migrating
The EvaluatingParser has a cached evaluator (to speed up evaluation).
When operating in a context where migration support is wanted, the
evaluator needs to hold on to an instance of the MigrationChecker,
but an instance configured for migration should not be reused.
Before this commit, the migration feature was sticky. Now, a
new instance is returned for each evaluation - this is slower
but correct.