Added extractors and used them. Also used the negated method. Did this to get rid
of case MatchResult ... because I will next add the args.
Added back in the failureMessageArgs and negatedFailureMessageArgs, now that I'd
replaced the pattern matches on MatchResult with the new Extractors.
Do the actual composing of localized strings in MatchResult.
Only call makeString if args is non-empty.
Swap the failure and negatedFailure args during a negation.
Made the easy half of and-ing and or-ing matchers lazy.
Added some pending tests and comments in MatchResultSpec about how to
do lazy with any and or, the hard ones. More involved than I foresaw. Will
do it later.