Implement action trigger bindings for mouse button clicks

* MouseButtonAction: Implement clicks field (analogue to
SDL_MouseButtonEvent::clicks field).

* InputStateMapper: Implement logic for recognizing mouse button
clicks; this lets us implement action triggers that take into account
the number of clicks (i.e.: left mouse button double click action).

* InputStateMapper: Clean up conditional logic within ::on_key_press
and ::on_mouse_button methods.
  The logic clean up within ::on_key_press appears to have fixed a
mismatch bug when using multiple key modifiers with a single symbol
(i.e.: SDLK_e, KMOD_LGUI && SDLK_e, KMOD_NONE), leading to only one
of the actions being executed.

* examples/events: Add mouse button mapping for testing the new clicks
action triggering feature; this is for implementing bindings that allow
for single, double, ... button clicks to be acted on.

* examples/events: Add simulated (fake) input event test; the
internal nom::EventHandler::push_event method offers us this
capability.

---

VisualUnitTest: Add key binding for quickly terminating all tests

* The returned exit code should always match the number of failed tests
up to the moment of termination.

* UnitTest: Introduce ::failed_test_count method. This is used for the
return exit code (see above).
DataViewListTest: Clean up logging output

* Use NOM_LOG_CATEGORY_TEST for variable dumps & disable the logging
priority level for it by default.
Refactor SDL2Logger to use abstracted logging priority enum

* SDL2Logger: Introduce nom::LogPriority enumeration -- deriving from
SDL_LOG_PRIORITY for the time being) -- in future preparation for
abstraction of the logging subsystem. All SDL_LOG_PRIORITY enumerations
have been replaced throughout the engine.

* SDL2Logger: Introduce convenience static methods for conversion to
and fro SDL_LogPriority and nom::LogPriority.

* SDL2Logger: Introduce humna-friendly string descriptions of each
priority level; this will eventually be used for things like dynamic
runtime logging via command-line switches. Note its particularly nice
use in the callback example in SDL2LoggerTest as well.

* src/CMakeLists.txt: Relocate building SDL2Logger & its dependencies --
system/clock.cpp, system/ObjectTypeInfo.cpp, system/IObject.cpp -- to
NOM_BUILD_CORE_UNIT, the engine core; this better suits the overall
organization, and it allows us to skip building the system unit in many
more circumstances.
Introduce colored logging output for Unix & Windows platforms

* ConsoleOutput is the pubic interface (controls UnixConsoleOutput and
WindowsConsoleOutput). ConsoleOutputTest has been added for testing of
the interface.

* SDL2Logger: Introduce log output callback to use for the new colored
output feature.

* cmake/platform.cmake: Introduce NOM_PLATFORM_POSIX var; this gets set
when OSX or LINUX is detected, in order to ease the sharing of common
source files between the operating systems.

* Relocate SDL2LoggerTest from 'tests/src/system' to 'tests/src/core'.