#57 add normalise to Vec2
#57 add normalise self
#52 #54 added PositionAccelerationRule and key toggling for the various types of acceleration rules