Revamp logging interface (macros) to support variable # of args

* clock.cpp: Update the time implementation: a) do not output a newline
character at the end of the time stamp; b) use ISO 8601 date & time
standard; c) use TIME_STRING_SIZE in both Windows & Unix
implementations.

* config.hpp.in: Use new logger interface for NOM_DUMP, NOM_LOG_INFO,
NOM_LOG_ERR, NOM_LOG_TRACE, NOM_STUBBED -- yay for variable number of
arguments!

* config.hpp.in: NOM_DUMP no longer outputs the variable before the
value. It must be explicitly named via a passed string. The rationale
for this is to hopefully produce a less cluttered output log, with
the potential for better -- more descriptive -- variable names.

* config.hpp.in: NOM_STUBBED logging is now reported under
<identifier>_LOG_ERR level, with the rationale that it will be more
likely to be caught by my poor eyes.

* config.hpp.in: NOM_DUMP_EXT macro has been removed; obsoleted.

* config.hpp.in: Clean up the order of header files.

* Several misc header files had to be updated -- adding SDL.h -- after
it was removed from system/clock.hpp.
Introduce macros example app
UIBoxLayout: Fix UISpacerItem & internal layout spacing bugs

* Button: Use the label's width as the width of the returned Size in
the size_hint method.
* Button: Return the minimum size of the widget when all else fails
inside the size_hint method.

* ListBox: Use nom::DEFAULT_FONT_SIZE within both size_hint and update
methods.
* ListBox: Use the font point size of the UIStyle when available; this
is done in both ::size_hint && ::update.

* examples/gui_listbox: Introduce several assertions for ensuring
layout logic is sane. (These will be relocated soon!)

* examples/gui_button: Introduce several assertions for ensuring
layout logic is sane. (These will be relocated soon!)