"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.h b/src/utils/debugger/SkDrawCommand.h
index def0db4..1d3d373 100644
--- a/src/utils/debugger/SkDrawCommand.h
+++ b/src/utils/debugger/SkDrawCommand.h
@@ -41,6 +41,9 @@
     SkTDArray<SkString*>* Info() {return &fInfo; };
     virtual void execute(SkCanvas* canvas) = 0;
     virtual void vizExecute(SkCanvas* canvas) { };
+
+    virtual void setUserMatrix(const SkMatrix& userMtx) { };
+
     /** Does nothing by default, but used by save() and restore()-type
         subclasses to track unresolved save() calls. */
     virtual void trackSaveState(int* state) { };
@@ -592,8 +595,10 @@
 class SkSetMatrixCommand : public SkDrawCommand {
 public:
     SkSetMatrixCommand(const SkMatrix& matrix);
+    virtual void setUserMatrix(const SkMatrix&) SK_OVERRIDE;
     virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
 private:
+    SkMatrix fUserMatrix;
     SkMatrix fMatrix;
 
     typedef SkDrawCommand INHERITED;