className is passed through from class based test methods and held in the TestCaseInfo.
For free-function based test cases it is set to "global".
The JUnit reporter uses the className value to populate he class attribute.
Some files had include guards that didn't match the file name, and
others were missing the include guards entirely.
Standardized this so that every include file has an include guard, and
all the guards are of the form TWOBLUECUBES_<FILENAME>_<EXT>_INCLUDED
If a test case with the same name as an already registered test case is registered an error is logged to cerr and the program exits (with error level 1)