Fixes for factory GM.

Skip cross process pipe playback in gm/factory.cpp. Add a new flag to
gm.h to skip only this form of pipe playback.

In gmmain.cpp, use a bitmap encoder function for serialization that
stores the encoded data if present, and use a bitmap decoder on
deserialization. This allows gm/factory to work through serialization.
Also respect the new pipe skipping flag.

BUG=https://code.google.com/p/skia/issues/detail?id=1231
R=borenet@google.com

Author: scroggo@google.com

Review URL: https://chromiumcodereview.appspot.com/23192004

git-svn-id: http://skia.googlecode.com/svn/trunk@10786 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/gm.h b/gm/gm.h
index bb263c7..f806973 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -34,13 +34,14 @@
         virtual ~GM();
 
         enum Flags {
-            kSkipPDF_Flag           = 1 << 0,
-            kSkipPicture_Flag       = 1 << 1,
-            kSkipPipe_Flag          = 1 << 2,
-            kSkipTiled_Flag         = 1 << 3,
-            kSkip565_Flag           = 1 << 4,
-            kSkipScaledReplay_Flag  = 1 << 5,
-            kSkipGPU_Flag           = 1 << 6,
+            kSkipPDF_Flag               = 1 << 0,
+            kSkipPicture_Flag           = 1 << 1,
+            kSkipPipe_Flag              = 1 << 2,
+            kSkipPipeCrossProcess_Flag  = 1 << 3,
+            kSkipTiled_Flag             = 1 << 4,
+            kSkip565_Flag               = 1 << 5,
+            kSkipScaledReplay_Flag      = 1 << 6,
+            kSkipGPU_Flag               = 1 << 7,
         };
 
         void draw(SkCanvas*);