Functional GUISelectionBox and improved GUIElement interface

Params are now specified in the constructor so that they don't have to
be manually set after creating an element.