Refactor and cleanup on GUIElement

Fully documented GUIElement
Removed unnecessary member variables for position
Refactored classes affected by removing position variables by getting
the position from m_rectangle