replaced use of `arguments.callee` by a  named function (fixes jslint,, and is ECMAScript 5′s strict mode compliant)
[#245] updated system objects to be more "Object Pooling" friendly

Avoid re-declaring vectors object if already defined, and just reset
them
Sync'ed with Master
Fixed object flipping

This was due to me.Rect constructor setting the given vector reference
to it's own pos property, instead of creating a specific object.  The
range position is the now updated when the collision function is called