tests/CMakeLists: Split NOM_BUILD_SYSTEM_TESTS into separate unit tests

NOM_BUILD_SYSTEM_TESTS -> NOM_BUILD_FONT_CACHE_TESTS,
NOM_BUILD_COLOR_DB_TESTS
Update template file for unit tests
UnixFile: Use WinFile::path implementation of dirname wrapper -- ::path

This is done in order to (hopefully!) ease future maintenance; reduce
code duplication.

* WinFile: Fix type mismatch bug in ::path; local var 'pos' is now
signed, so that ::npos condition can execute.

* UnixFile: Move OSX-specific header files to private implementation
(UnixFile.cpp); for ease of future maintenance.
FontCacheTest: Fix test err when ran from WindowsOS

* Append the same number of (expected) fonts to our font cache; remove
the appending of the TimesNewRoman font when under Windows balances
the expected fonts size to five (5) under all platforms.
Convert old tests to use GTest framework

	The test files have been converted and original source removed:
tests/graphics-tests.cpp -> tests/graphics/RenderWindowTest.cpp
tests/math-tests.cpp -> tests/graphics/MathTest.cpp
tests/system-tests.cpp -> tests/system/FileInterfaceTest.cpp

	Related files removed:
* tests/Makefile
* tests/run.sh

* tests/CMakeLists.txt: Use TESTS_DEPS_INSTALL_PREFIX cmake var
for the destination path when copying resources.
* tests/CMakeLists.txt: Remove redundant NOM_BUILD checks for
initial setting of individual unit tests; these checks are
done before inclusion of a test.

* tests/CMakeLists.txt: Only copy JSON, XML, font resources when the
appropriate unit tests are being built.

* tests/CMakeLists.txt: Fix compile err with operator ++ and
operator -- method overloads.
examples/CMakeLists.txt: Rename NOM_BUILD_GUI_EXAMPLES var

NOM_BUILD_GUI_EXAMPLES -> NOM_BUILD_GUI_EXAMPLE

* This completes the intended splitting up of the gui examples.