[GeometryInterface] Add rotate*(), rotateFromVector*() function.

rotate() and rotateSelf() function
1. If rotY and rotZ are both missing,
 set rotZ to the value of rotX and set rotX and rotY to zero.
2. If rotY is still missing, set rotY to zero.
3. If rotZ is still missing, set rotZ to zero.
4. If rotX or rotY are non-zero,
 set is2D of the current matrix to false.
5. Post-multiply a rotation transformation on the current matrix around the vector 0, 0, 1
 by the specified rotation rotZ in degrees.
6. Post-multiply a rotation transformation on the current matrix around the vector 0, 1, 0
 by the specified rotation rotY in degrees.
7. Post-multiply a rotation transformation on the current matrix around the vector 1, 0, 0
 by the specified rotation rotX in degrees.
8. Return the current matrix.

rotateFromVertor() and rotateFromVertorSelf() function
1. Post-multiply a rotation transformation on the current matrix.
 The rotation angle is determined by the angle between the vector (1,0)T and (x,y)T
 in the clockwise direction.
2. Return the current matrix.

spec list:
- https://drafts.fxtf.org/geometry/#dom-dommatrix-rotateself
- https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-rotate
- https://drafts.fxtf.org/geometry/#dom-dommatrix-rotatefromvectorself
- https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-rotatefromvector

BUG=388780, 645878, 645882

Review-Url: https://codereview.chromium.org/2444733002
Cr-Commit-Position: refs/heads/master@{#427289}
8 files changed