Various rotation fixes to work with matrices.
Various rotation fixes to work with matrices.

* Construct rotation matrix with -CROTA2 as +ve is a CW rotation.
* Construct rmatrix in `map.rotate()` with -angle as +ve is CW rotation.
* Pass np.matrix objects around for rotation matricies.
* Only reset crval and crpix values when recentreing has happened.
* Change modified PCi_j matrix calculation to explicity use np.dot rather than * on a matrix object for clarity.
* Add a warning to `map.plot` if the rotation matrix is not the identity matrix.

dpshelio/sunpy,Alex-Ian-Hamilton/sunpy,Alex-Ian-Hamilton/sunpy,dpshelio/sunpy,dpshelio/sunpy,Alex-Ian-Hamilton/sunpy