Fix a layout calculation bug
Bit of layout API clean up (commenting out un-used / experimental code)

* Rename Anchor::Top to Anchor::TopCenter
* Rename Anchor::Left to Anchor::MiddleLeft
* Rename Anchor::Center to Anchor::MiddleCenter
* Rename Anchor::Right to Anchor::MiddleRight
* Rename Anchor::Bottom to Anchor::BottomCenter
ListBox: Fix bug where font is not updated when in layout
Misc refactoring -- UIWidget, UIBoxLayout and unit tests

* UIWidget: Introduce set_title method variant.
* UIWidget: Introduce set_geometry method; this is a helper method for
automatically setting relative coordinates.
* UIWidget: Introduce resize method; helper method for resizing a widget
after construction; this is necessary for updating layout items & their
decorators.
* UIWidget: Fix UIWidget ctor for self-type pointer initializaiton.

* UILayout: Add const keyword to find_widget, set_alignment method
arguments.

* UIBoxLayout: Fix a couple calculation bugs in ::set_bounds.

  ButtonLayoutTest & ListBoxLayoutTest:
* Dedicate a widget (layout_widget) for use with the layout; this lets
us get rid of specifying coordinates within ::create_layout.

* ButtonLayoutTest: Remove NullSizeHorizontalLayout &
NullSizeVerticalLayout tests.

* UIWidgetTest: Add additional tests.

  common.cpp (for layouts):
* Widgets are now automatically inserted into the parent window for us
within the ::create_layout method.

* You can now have an uneven number of spacer and widget items when
using ::create_layout.

* Introduce set_layout_alignment & set_widget_alignment methods.