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
Added MockReporter for tracking test runs.
Added intrusive smart pointer. Config holds reporter by smart pointer, so we can route the mock reporter through multiple test runs