[RFC] Interpolate paired matrices, avoid decomposing rest of chain

This is the update for https://github.com/web-animations/web-animations-js/pull/618 since shans pointed out the issues with the former.

Prior to the patch, none of the following rotations were visible.  (Because the rotations were decomposed, which makes the start and end angles, 0 and 360, look the same, which makes interpolation go nowhere!)

With the patch applied, all of the following rotations become visible.  (In Chrome 34, after the patch, all the divs were rotating except for the third.)

```
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));

dt.play(new Animation(divs[1], [
  {transform: "matrix(1,0,0,1,0,0)"},
  {transform: "matrix(1,0,0,1,100,0)"},
], timing));
dt.play(new Animation(divs[1], new KeyframeEffect([
  {transform: "rotate(0deg)"},
  {transform: "rotate(360deg)"},
], "add"), timing));

dt.play(new Animation(divs[2], [
  {transform: "scale(1) rotate(0deg)"},
  {transform: "matrix(1,0,0,1,200,0) rotate(360deg)"},
], timing));

dt.play(new Animation(divs[3], [
  {transform: "scale(1)"},
  {transform: "matrix(1,0,0,1,100,0)"},
], timing));
dt.play(new Animation(divs[3], new KeyframeEffect([
  {transform: "rotate(0deg)"},
  {transform: "rotate(360deg)"},
], "add"), timing));
```

I put caching in [another branch](https://github.com/joeytwiddle/web-animations-js/tree/decompose-matrices-individually-2-with-caching) because it wasn't very pretty.