GuiPlus depth 1

Implemented a basic method for forcing the GUI to treat depth as draw
order. All GUI calls rendered invisible and stored to be redrawn again
in multiple passes over the GUI depths that are used in the given frame.

Current implementation is more proof-of-concept and still contains some
ugly hacks to get working, and elements do not have their styles
respected.
Refactoring for next commit.
GuiPlus depth 2

Finished implementing z-order and added support for button and label
GUIStyles for custom alignment.

Added a function for find the mouse position in the GUI, relative to any
nested dropdowns. This is required for detecting if a left-mouse-click
occurs outside the dropdown after it's been drawn. It's also a
convenient helper function since the MousePosition's y-value is inverted
between the GUI and the default coordinates and I had been calculating
it in two steps in many places in the code.

Fixed flicker on dropdowns from the last commit.
Updated some places in the code that use alignment in a way that isn't
compatible with the GuiPlus interface.