Run only tests that contain a given string in title.

The main thing this PR does is add the `-s` option which allows us to:

    ./run-tests.py img

and run only tests which contain the string img on their filename.

To do this, I needed to add argparse, which led to refactoring:

- docstrings go into argparse help
- `cat-all.py` was also modified to use argparse not to leave things half done.

The other commits are minor but rely on the first one. They add the options:

- `-n` to run only a single test with given test number
- `-l` to list engines and their status