Worked on Point.rotate method

Changed method specification to use a rotation axis not necessarily
crossing through the origin. Solved necessary equations on paper and
applied them to the method.