Merge to XFA: Type check the m_pShadingObj before assuming it's a stream.

The m_pShadingObj can be a stream or a dictionary depending on how it's used.
This CL adds some simple type checking to make sure that the type of the
object matches what we expect.

BUG=chromium:547706
TBR=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1421973004 .

(cherry picked from commit 4ef782ab57979add3e3910d6bcfde6ef59f65724)

Review URL: https://codereview.chromium.org/1422253002 .
diff --git a/testing/resources/bug_547706.pdf b/testing/resources/bug_547706.pdf
new file mode 100644
index 0000000..8003b3c
--- /dev/null
+++ b/testing/resources/bug_547706.pdf
@@ -0,0 +1,55 @@
+%PDF-1.7
+% ò¤ô
+
+1 0 obj
+<< /Pages 2 0 R >>
+endobj
+
+2 0 obj
+<< /Kids [ 3 0 R ] >>
+endobj
+
+3 0 obj
+<< /Contents 4 0 R /Resources << /Pattern 6 0 R >>>>
+endobj
+
+4 0 obj
+<< /Length 5 0 R >>
+stream
+/R9 scn
+0 0 2479 3508 re
+/R11 36 Tf
+[(1)-12288.9(2)]TJ
+endstream
+endobj
+
+6 0 obj
+<< /R9 7 0 R >>
+endobj
+
+7 0 obj
+<< /PatternType 2 /Shading 8 0 R >>
+endobj
+
+8 0 obj
+<< /BitsPerComponent 16 /ColorSpace /DeviceRGB /ShadingType 5 >>
+endobj
+
+xref
+0 9
+0000000000 65535 f 
+0000000016 00000 n 
+0000000051 00000 n 
+0000000089 00000 n 
+0000000158 00000 n 
+0000000000 65535 f 
+0000000266 00000 n 
+0000000298 00000 n 
+0000000350 00000 n 
+trailer <<
+  /Root 1 0 R
+  /Size 9
+>>
+startxref
+431
+%%EOF