Introduce visual unit testing framework

nom::VisualUnitTest automates the setup of any unit test that
utilizes the engine's video & input subsystems; this has been added
to help support comparing reference screen-shots to the current test
run (the major new feature).

* nom::UnitTest has greatly improved integration with Google Test.

* Introduce HTML test result output writer interface; this is
currently used for HTML test results output with reference VS
compared screen dumps.

* Add unit tests for the new interfacing.
* Add TCLAP third-party dependency for command line parsing within
nom::init_test.

* Introduce RenderWindow::save_png_file method -- variant to
::save_screenshot -- this method does not alter the output
filename string.
* Introduce RenderWindow::valid method; check validity of both the
window and its rendering context.

* Use explicit Color4 constructor only for Color4<float> types.
* Introduce template method overloads of operator +, operator - &
operator << variants for Color4<float>.
* Do not use specialization for Color4::operator* and Color4::operator-.
* Remove Color4::get method.
* Introduce nom::difference_color_blend method.
.gitignore: Remove dead ignored files
CMakeLists.txt: Add TODO note regarding usage of -Wextra