Re-implement failing scenarios

I've added a little more detail to the `LegacyScenario` to capture the
name and location, so that we can use them to print out a meaningful set
of failures. Also took the opportunity to clean the `print_stats` code
by extracting a few methods.
Merge pull request #554 from chrismdp/reimplement-failing-scenarios

Re-implement "Failing scenarios" output