Break IObject inheritance on TRectangle

No reason for it, and primary hindrance to new GC tracking scheme. Also
updates all code depending on TRectangle.
Add ShouldBeTracked method to IObject

Also add CGenericObject layer for internal objects that marks them as
needing to be tracked. Update EventPumpTask and Application
implementations directly since they don't inherit from Default::Object.
Add shorthand to get current thread GC
Update Windows project files for Common files
Add tracking awareness to objects
Update Ptr for tracking awareness