Decompose matrices individually to allow rotate(0deg) -> rotate(360deg) after a matrix

Currently in `transformType.interpolate()` the presence of a matrix forces itself and *all later transforms* to be decomposed into their components for interpolation.  But decomposing `rotate(0deg)` and `rotate(360deg)` into matrices breaks the interpolation of the angle value.  (Because both of those rotations decompose to a rotation of 0!)

This patch attempts to fix this: when a matrix (or incompatible types) are encountered, we only perform decomposition at that stage of the composition.  Later interpolations can be performed without decomposition into matrices.

I added a test case `auto-test-composite-transforms-matrix-rotate.html` (a slight modification of `
auto-test-composite-transforms.html`).

    dt.play(new Animation(divs[0], [
      {transform: "matrix(1,0,0,1,0,0) rotate(0deg)"},
      {transform: "matrix(1,0,0,1,200,0) rotate(360deg)"},
    ], timing));

With the old behaviour the first two divs do not rotate at all.  With the new behaviour you will see them perform a full rotation.

Concerns:

- It looks like `from.decompositionPair = to;` and `from.decomposition` were assigned as a way of caching the decomposed matrix, but I did not reproduce caching in this patch.

Alternatives:

- I thought a workaround might be to specify additional keyframes with intermediate angles, e.g. `0deg`, `120deg`, `240deg` and `360deg` but the decomposition still causes 240 to rotate anti-clockwise to "360" (because it was decomposed to 0).