SkPDF: move font serialization over to new immediate mode.

  - SkPDFFont no longer inherits from SkPDFObject.
  - PDFFont reserves a PDFIndirectReference upon creation;
    these are shared.
  - PDFFonts no longer have virtual method and subtypes.
  - PDFFont is moveable so it can be in hashmap.
  - Refer to Fonts by "F"+referenceValue in content.
  - Canon directly owns SkPDFFont objects.
  - Canonicalize Type 3 descriptors.
  - Pre-serialize Type 1 descriptors.
  - SkPDFDocument::emit(const SkPDFObject&) for objects on the stack.
  - SkPDFDocument::registerFont is gone.  Canon is used instead.
  - Replace lots of 'ObjRef' with 'Ref'.
  - Standard PDFTypes that use String now take by value to sometimes
    save ref/unref.

Change-Id: Iff039c79120a903263edfd1f122c7feabc45e2b8
Reviewed-on: https://skia-review.googlesource.com/c/171781
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
12 files changed