Add Stack concept

Stack is for keeping track of forms on the screen and handles
removals/hiding. It also holds the Dummy GuiScreen object which is a
bridge between Minecraft and Spout's GUI systems.

This system means that you can't use GuiOpenEvent to stop a Gui from
opening..but I'll be providing FormOpenEvent and many other events to
handle this accordingly.

Controls now require a form object. Controls now need a name. This makes
finding a control much easier and keeps the GUI a top down approach.

Also update font program for Caustic changes

Signed-off-by: Chris Sanders <zidane@outlook.com>