SkDocument/PDF: new API

has a pdf/a switch.
sets metadata in factory.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1916093002

Review URL: https://codereview.chromium.org/1916093002
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index 6f4eac7..5f60dc5 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -254,9 +254,11 @@
 
 class PDFSink : public Sink {
 public:
+    PDFSink(bool pdfa = false) : fPDFA(pdfa) {}
     Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
     const char* fileExtension() const override { return "pdf"; }
     SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, SinkFlags::kDirect }; }
+    bool fPDFA;
 };
 
 class XPSSink : public Sink {