Refactored some classes into abstract interfaces.
Updated Vec2 for better performance.
Added Renderer interface.
Refactored Time class.