Generate correct output for failing tests

After the migration to call_ending/2, failing tests exited the test
script early.  That prevented subsequent tests from running and made
prove warning about a bad test plan ("planned 3 tests; ran 1", etc).

By making call_ending/2 deterministic, each clause of run_test/4 can
just switch on Ending and do the right thing.

I also added t/failing.pl to make sure I don't regress.  This script
should fail on all tests all the time.
Release v0.2.2
Avoid warning on newer SWI versions

This particular test has `X == X` which is always true.  The style
checker notices that it always succeeds and warns us that we might be
doing something wrong.
Merge remote-tracking branch 'origin/master'

I accidentally committed two separate fixes for the same problem.  This
commit merges in the wrong fix with 'ours' merge strategy.