Added code for axis based rotation

Overloaded the rotation method to support axis based rotation. The new method accepts axis along which the rotation should be done and the deg of rotation as values. The value for the axis parameter is always converted to Upper-case to be on the safer side.