Clean up CPDF_Stream.

Replace the CPDF_Stream(nullptr, 0, nullptr) pattern with
a default ctor.

Remove unused parameters from CPDF_Stream::SetData(). Both
are always passed as FALSE.

CPDF_Stream declared its own m_GenNum, which shadowed the one
in CPDF_Object. It was used only to distinguish file/memory
streams, so add a bool explicitly for this purpose.

Remove the union, it would be sad if we confused user data
with a C++ object with virtual function calls.

Use unique_ptrs with appropriate deleters to manage memory.

Review-Url: https://codereview.chromium.org/2347993002
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index de6baf1..aa21b28 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -200,8 +200,7 @@
 
       CFX_ByteString sStream;
       sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
-      pNewContents->SetData(sStream.raw_str(), sStream.GetLength(), FALSE,
-                            FALSE);
+      pNewContents->SetData(sStream.raw_str(), sStream.GetLength());
     }
     return;
   }
@@ -219,7 +218,7 @@
       CFX_ByteString sBody =
           CFX_ByteString((const FX_CHAR*)acc.GetData(), acc.GetSize());
       sStream = sStream + sBody + "\nQ";
-      pContents->SetData(sStream.raw_str(), sStream.GetLength(), FALSE, FALSE);
+      pContents->SetData(sStream.raw_str(), sStream.GetLength());
       pContentsArray->AddReference(pDocument, dwObjNum);
       break;
     }
@@ -246,7 +245,7 @@
 
     CFX_ByteString sStream;
     sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
-    pNewContents->SetData(sStream.raw_str(), sStream.GetLength(), FALSE, FALSE);
+    pNewContents->SetData(sStream.raw_str(), sStream.GetLength());
   }
 }
 
@@ -506,7 +505,7 @@
     sTemp.Format("q %f 0 0 %f %f %f cm /%s Do Q\n", m.a, m.d, m.e, m.f,
                  sFormName.c_str());
     sStream += sTemp;
-    pNewXObject->SetData(sStream.raw_str(), sStream.GetLength(), FALSE, FALSE);
+    pNewXObject->SetData(sStream.raw_str(), sStream.GetLength());
   }
   pPageDict->RemoveFor("Annots");