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.