Tick off some TODOs:

  - support fRecord in copy constructor
  - support SkDrawPictureCallback

Moved SkDrawPictureCallback to its own header so
SkRecordDraw can include it without pulling in all of
SkPicture.

Adding an SkAutoSaveRestore to SkRecordDraw was the easiest
way to match the balance guarantees of the callback, and
probably not a bad idea in general.  Updated its tests.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349973008
diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h
index 359679a..92b94c4 100644
--- a/src/core/SkRecordDraw.h
+++ b/src/core/SkRecordDraw.h
@@ -10,9 +10,10 @@
 
 #include "SkRecord.h"
 #include "SkCanvas.h"
+#include "SkDrawPictureCallback.h"
 
 // Draw an SkRecord into an SkCanvas.  A convenience wrapper around SkRecords::Draw.
-void SkRecordDraw(const SkRecord&, SkCanvas*);
+void SkRecordDraw(const SkRecord&, SkCanvas*, SkDrawPictureCallback* = NULL);
 
 namespace SkRecords {