Improve logging of YAML header errors

Improve logging based on review of swcarpentry/matlab-novice-inflammation/#4 testcase.

Specifically, if the sample file is missing some fields from the YAML header section, those fields should be explicitly named in an error message.

Additionally: If custom tests are added to the base validator, they should run last. That way common error messages appear in a more logical and predictable order.
Interesting point; I hadn't known about that function at the time. Good to know.

Advantage: readability
Disadvantage: would add another dependency to lessons; might need to reparse document because of how CommonMark stores the data.