This is part of a collection of commits that aim to improve failure
messages across the board. The goal here is to make the matcher easier
to debug when something goes wrong.
* Have the failure message describe what the matcher was trying to do
when it failed.
* Make the description of the matcher more readable.
* Change how the matcher works by stopping at the first failing
submatcher instead of running all submatchers. Coincidentally, pending
tests involving a strict validation but a non-strict expectation now
pass.
* Fix or fill in tests involving failure messages and descriptions to
match these changes and recent changes to ValidationMatcher and
allow_value.