(Msm assessments) "Mathematical Expression" puzzle type

This PR defines a new TextMatch puzzle type, used by Mathematical expression puzzles in the MSM curriculum. It refactors a bunch of code from the Match class to define a new puzzle type that provides a textarea input, and succeeds only if the answer exactly matches one of the provided answers.