Handle exceptions such that Python 2 and 3 are both happy.

In this instance, we didn't actually care about the error message...
Bug fix: correctly inherit tolerances.

Given the directory structure

Excitations/
            TDDFT-geom/
            TDDFT-spe/

[Excitations/*]
tolerance = (0.0001, None, 'Energy'),(0.01, None, 'Force')

should be equivalent to

[Excitations/*]
[Excitations/TDDFT-spe]
tolerance = (0.0001, None, 'Energy'),(0.01, None, 'Force')
[Excitations/TDDFT-geom]
tolerance = (0.0001, None, 'Energy'),(0.01, None, 'Force')

As tolerance also inherits from the default settings and (potentially)
other entries, we need to ensure that the tolerance settings are applied
to each test without overwriting the previously entered tolerances.
Previously we were only updating the tolerances for one test that
matched the glob.
Enable nested tuples to be entered in the config files.

This is required for such values to be entered over multiple lines.
Previously we appended a comma to all affected elements to force
literal_eval to return a nested set of tuples, even if the config value
was only a single tuple.  However, this meant that a tuple of tuples
(the desired value!) could not be manually entered.  We now detect if
the supplied value is or isn't already a tuple of tuples and act
accordingly.
__repr__ for tolerance.  Very handy for debugging.
Formatting of output of skipped comparisons.

Print skipped comparisons in same format as the other tests when running
at medium levels of verbosity.
Pass working directory through to run_test.

This is so the relative path rather than full path of a test can be
printed out in the quieter output modes.  This was already being done in
most places.