"Fix" debugger's setMatrix handling

This remedies two problems with the debugger's matrix handling:
1) the user matrix was not being passed to the setMatrix command (for a concat)
2) the setting of the user matrix was not consistently forcing a complete re-rendering of the scene

BUG=skia:3018

Review URL: https://codereview.chromium.org/660883002
diff --git a/src/utils/debugger/SkDrawCommand.cpp b/src/utils/debugger/SkDrawCommand.cpp
index 0da8f98..93c436d 100644
--- a/src/utils/debugger/SkDrawCommand.cpp
+++ b/src/utils/debugger/SkDrawCommand.cpp
@@ -964,13 +964,19 @@
 
 SkSetMatrixCommand::SkSetMatrixCommand(const SkMatrix& matrix)
     : INHERITED(SET_MATRIX) {
+    fUserMatrix.reset();
     fMatrix = matrix;
 
     fInfo.push(SkObjectParser::MatrixToString(matrix));
 }
 
+void SkSetMatrixCommand::setUserMatrix(const SkMatrix& userMatrix) {
+    fUserMatrix = userMatrix;
+}
+
 void SkSetMatrixCommand::execute(SkCanvas* canvas) {
-    canvas->setMatrix(fMatrix);
+    SkMatrix temp = SkMatrix::Concat(fUserMatrix, fMatrix);
+    canvas->setMatrix(temp);
 }
 
 SkSkewCommand::SkSkewCommand(SkScalar sx, SkScalar sy)