Differential Rotation code updates

This PR was #492 which was #452 !!

This is @wafels work on writing better differential rotation code that we can use for coordinate transforms, that I pulled up to date.

Closing this is being blocked by  #472 before. Having sun_pos not in sunpy.sun needs to be fixed, properly.