Add {assert,refute}_match

Since I used it in the examples, I figured I must have it as an assertion
Represent skips as failures

Also, replace all `pop`'s with `first` to be less destructive
Keep track if a run passed or not
Test#run_all runs all tests

Push the responsibility down so each test-run is self-contained and
self-aware if it passed, failed or was skipped