Misc clean aup in EventHandler

* Update NOM_LOG_TRACE macro to utilize SDL2Logger
categories & priorities.

* Simplify the boolean logic within ::poll_event.
* Add bit of err handling within ::process_events.
[RELOCATE] Fix duplicate logging of mouse events

* This has only been verified to correct the issue within the
unit test for the DataViewList widget.

* Introduce DataViewListTest::on_click method; this is done
only so we do not have to log the id field member of the
UIWidgetEvent object.
DataViewListTest: Increaase height of widgets
SDL2Logger: Introduce control over auto-spacing logging messages

* Introduce NOM_LOG_CATEGORY_MEMORY, NOM_LOG_CATEGORY_MEMORY_TOTALS
enumerations; these will eventually be used for logging memory allocations
and deallocations once we finish implementing a global new/delete method
for use.

* SDL2Logger: Introduce boolean auto_space class var & ctor argument for
allowing us to optionally control whether or not to insert a space char
at the end of a log message (applicable when varadic args are used).
  The NOM_LOG_MESSAGE helper macro has been updated with the
default arg of disabling the insertion of a space char.
(This may change back in the near future...)

* Image: Update ctor & dtor trace logs to use SDL2Logger interface.
* Texture: Update ctor & dtor trace logs to use SDL2Logger interface.
Bit of clean up work on version & revision files

* Fix lack of version string output (past the major integer) in
nom::version by using std::ostringstream.

* Move nomlib/revision.hpp header file to public header scope --
version.hpp.

* Introduce NOM_VERSION && NOM_REVISION macros.
Unlock video memory (if locked) during dtor in Texture & Image

* Image: Fix a crash that occurs inside ::locked when the object had
not yet been initialized with a SDL_Surface (AKA NULL pointer).

* Introduce NOM_DELETE_VOID_PTR macro helper.
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.