Unfriend the 20 IGUIObject classes from CGUI.
Improves separation of concerns and makes the code less error prone, since the IGUIObject classes can't break CGUI private members without CGUIs help anymore.
This is achieved by making CGUI GetFocusedObject, UpdateObjects public,
by introducing public CGUI GetBaseObject, GetMousePos, GetMouseButtons, HasStyle, GetStyle getters,
and by removing the pointless IGUIObject GetMousePos proxy.
Delete GetGUI() checks that are either always or never true following rP22587.
Use const references instead of copies for some mouse positions.
Differential Revision: https://code.wildfiregames.com/D2166