Added some tests for the exceptions.
Added some tests for the abstract singleton implementation.
Added some tests for the logger.
Modified the build system to add the "tests" target.

This target is an explicit target. It will build the test files under
the "tests" directory.
Fixed build errors on MS Windows.