Specify tests uniquely by name and path rather than just path.

This is to allow tests within the same directory (which has many
downsides for testcode) to belong to different categories.

Reported by: Keith Refson.
Only print out directory/test name once rather than once per failed/skipped test.