Massive clean up of header files (speed up build)

* UnitTest: Move initialization of VisualUnitTest's event listener
(HTML results output) to VisualUnitTest.
  This allows us to properly separate the UnitTest sources from
VisualUnitTest sources as per intended design.

* Introduce necessary logic in the build script to let me handle
optionally building the ScaleX and HQX algorithms without
consequence (to Texture).
  When NOM_BUILD_EXTRA_RESCALE_ALGO_UNIT is enabled, NOM_USE_SCALEX
and NOM_USE_HQX defines are used within the Texture class to somewhat
gracefully handle the condition aborting the attempt and informing the
end-user that the algorithm has not been built into the engine.
SDL2Logger: Revert auto_space concept...
EventHandler: Revert changes made to ::pop_event && ::process_event

The changes made earlier create an infinite loop when there are
no events to be processed (not our intentions). The bug was found
because of the intentional lack of event listening in
VisualUnitTestFrameworkNonDefaultCtorTest.
Experimental revamping of dependencies build system

* Switch back to using cmake's option command for configuring nomlib's
top-level build units.

* Introduce experimental BuildTreeDeps.cmake script; the script simply
ensures that the options chosen have their applicable dependencies
added, without the end-user needing to be aware of the details.

* config.hpp.in: Introduce experimental NOM_USE_SDL2_IMAGE,
NOM_USE_SDL2_TTF, NOM_USE_OPENAL and NOM_USE_LIBSNDFILE
cmake build-time config vars; these are used in examples/device_info.cpp
as an experimental test for the time being.

* Revamp examples/device_info.cpp: Use SDL2Logging facilities for
output and add dumping of library versions for nomlib, SDL2, SD2_image,
SDL2_ttf, OpenAL and libsndfile.
UnitTestTemplate: Use 'using namespace nom' declaration
BuildTreeDeps.cmake: Remove minimum cmake required version