Restored a better backup of this class
Stopped caching these objects since they are used only once
Updated class description
Minor rearrangement
Added a RenderLoop class
Changed direct call to requestAnimationFrame to RenderLoop calls