Add test generation helper utilities.

Adds a new cmake file TestScriptUtils.cmake which provides
three functions:

1. add_test_class_target(label [label2 ...])
   Create a target with name test-label (or test-label-label2 etc.)
   which runs with ctest only those tests whose labels match
   the specification.

2. add_test_label(name label ...)
   Add the given labels to the test 'name'.

3. add_test_script(name script interp)
   Add a test 'name' that runs the given script. Uses TEST_LABEL,
   TEST_ENVIRONMENT, TEST_PREFIX and name_TEST_PREFIX to
   customise the test invocation and test label(s).
Should it call add_test_class(LABEL) for each LABEL in add_test_label's ARGN?
e.g.
add_test_label(test-foo-barnacle unit foo bar)
would cause the creation (if not already existing) of test targets test-unit, test-foo and test-bar?

I'll update the feature branch with this change (and a check in add_test_class to avoid redefinition of test-targets.)