Improved mouse over detection.  Commit before major change to GESetting to add controllers to it so that it can be modified in various ways instead of only being able to change by cycling the value based on the inputstate.
Changed GESetting into an abstract class.  Now meant to serve as the base class of other child classes so that how the setting gets modified can be changed. Created new Classes GESettingConstant, GESettingCycleInputToggle and GESettingSelectMouseState.  Removed the gameEntities member ofthe GEObject and GEController classes.  gameEntities is now passed to the functions that need it instead. Improved how the engine changes mouseModes to make it more reliable.