SkPDF: Glyph Useage Map improvements

Instead of having a fFontGlyphUsage on each device and one on each
document, just have the one on the document, and never merge.

Make fGlyphUsage accesible on SkPDFDocument.

Remove SkPDFGlyphSetMap::merge, ::reset, and SkPDFGlyphSet::merge.

SkPDFGlyphSetMap has an TArray of SkPDFGlyphSet, not TDArray of
SkPDFGlyphSet pointers.  SkPDFGlyphSet and SkPDFBitset get move
constructors.

All tests produce exactly identical output PDFs.

BUG=skia:5434
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2112943002

Review-Url: https://codereview.chromium.org/2112943002
diff --git a/src/utils/SkBitSet.cpp b/src/utils/SkBitSet.cpp
index 7d03dfc..0a1ecac 100755
--- a/src/utils/SkBitSet.cpp
+++ b/src/utils/SkBitSet.cpp
@@ -21,6 +21,14 @@
     *this = source;
 }
 
+SkBitSet::SkBitSet(SkBitSet&& source)
+    : fBitData(source.fBitData.release())
+    , fDwordCount(source.fDwordCount)
+    , fBitCount(source.fBitCount) {
+    source.fDwordCount = 0;
+    source.fBitCount = 0;
+}
+
 SkBitSet& SkBitSet::operator=(const SkBitSet& rhs) {
     if (this == &rhs) {
         return *this;
diff --git a/src/utils/SkBitSet.h b/src/utils/SkBitSet.h
index 802b9e1..6882752 100644
--- a/src/utils/SkBitSet.h
+++ b/src/utils/SkBitSet.h
@@ -18,6 +18,7 @@
      */
     explicit SkBitSet(int numberOfBits);
     explicit SkBitSet(const SkBitSet& source);
+    explicit SkBitSet(SkBitSet&&);
 
     SkBitSet& operator=(const SkBitSet& rhs);
     bool operator==(const SkBitSet& rhs);