Attempt to be less clever checking for known metrics.

The existing code used Test::Deep, and the real purpose of what it was
doing was a bit vauge, not to mention, when it did fail, the message
given was pretty muddy.

This gives slightly more detailed results when things do go bad, and
removes the need for Test::Deep.

Also, I codified the exact behaviour Test::Deep was performing, namely,
it had to check every key of the metric data.

But I get the impression this was not trying to test that, but was
simply trying to test a list of named metrics *EXISTED*, and the need to
detail all the other properties of every metric was just an
implementation detail required to work with Test::Deep