travis-ci: Add build test for OS X
Fix SEH exceptions err with tests ran under Windows
Refactor button & layout tests to use shared codebase

Each unit test's ::create_layout, ::expected_layout_spacer_output and
::expected_layout_widget_output has been replaced by generic
implementations that can be re-used across tests.

* ListBoxLayoutTest: Introduce unit test for horizontal listbox layouts
with BitmapFont objects -- 'HorizontalLayoutUsingBitmapFont'.
Remove VBoxLayoutTest & CustomUILayoutTest
Change inclusion path of common headers for unit tests

* The tests directory path is now searched for header files, instead
of tests/gui.
Introduce UnitTest class

A simple interface for common functionality that can be re-used aacross
the engine's unit tests.

	ButtonLayoutTest, ListBoxTest:

* Implement interactive tests via command line flag (--interactive, -i);
the unit tests will run in a game loop when flagged -- defaults to
non-interactive.
Bug fix: Initialize PlatformSettings within SDLApp

This prevents the font example from crashing at initialization, among
any other that wasn't using any functionality from the GUI engine.
Introduce font kerning for TrueType fonts

This feature only works with a patched version of SDL2_ttf. See the
bug report filled at https://bugzilla.libsdl.org/show_bug.cgi?id=2572
for details.
Bit of API clean up on UILayout & UIWidgetEvent

* UIWidgetEvent: Remove copy constructor & copy assignment
operator; these are not necessary (as we do not use pointers or
have custom copy needs) and can lead to bugs when we forget about
copying all the variables the class has.

* UILayout (and friends): Change the alignment type to uint32 so we
can use bitmasks (as was intended originally).

* UILayout: Remove parent method; wasn't ever functioning,
nor used.