Improve test-skip message in ContextTestCase.
Add a function for skipping a single test.

This is for skipping single tests based on the number of engines available (versus skipping an entire test class like ContextTestCase allows).  This is mostly so we print the same error message in all the places we do this.
Use the new `check_targets` function.