Refactor VBoxLayoutTest to include visual display

* Fix LayoutAPIUsingSmallBitmapFont test; we forgot that the font
requires ALL CAPS item strings!

* UIItemContainer: Introduce clone method.
Bit of clean up on VBoxLayoutTest

* ListBox: Disable logging of NULL font check in ::update; this cuts
out *a lot* of spam.

* UIWidget: Set the top-level window's font regardless of children
(or not).

* VBoxLayoutTest: Change the height dimension of each listbox to 48;
this should be large enough for ~3 item strings.

* VBoxLayoutTest: Add assert checks for initialized fonts in each test.
VBoxLayoutTest: Fix incorrect usage of layout constructor

* UIEvent: Introduce WINDOW_MOVED, WINDOW_RESIZED, WINDOW_SIZE_CHANGED
and WINDOW_CLOSE public & private event slots.

* tests/CMakeLists: Introduce cmake variables for toggling build of
UIItemContainerTest, UIEventDispatcherTest && VBoxLayoutTest unit tests.
UILayoutItem: Rename Alignment enum to Anchor

* gui_config.hpp: Replace Alignment enum stub with
Alignment && Anchor bit-masked enums.
Use relative positioning coordinates for widgets

* UIWidget: Implement visible state for child widgets.
* UIWidget: Introduce global_bounds method.

* Transformable: Remove global_bounds method.

* Point2: Introduce lesser than, greater than, lesser than or equal
to, greater than or equal to operators.