SI-7912 Be defensive calling `toString` in `MatchError#getMessage`

Otherwise, objects with exception-throwing `toString` lead to a
cascading error far removed from the originally failed match.
Merge pull request #3249 from retronym/ticket/7912

SI-7912 Be defensive calling `toString` in `MatchError#getMessage`