Upstream support for giflib >= 5.1.

DGifCloseFile now takes two arugments.  The second argument appears to be an
optional out-param with more information on failures.

( c.f. http://giflib.sourceforge.net/gif_lib.html )

PS 1 is the original patch we received from google3.  I've updated it a bit to
be pedantically legal C++98.

BUG=skia:

Review URL: https://codereview.chromium.org/860853003
diff --git a/src/images/SkImageDecoder_libgif.cpp b/src/images/SkImageDecoder_libgif.cpp
index 0701eb6..fa12301 100644
--- a/src/images/SkImageDecoder_libgif.cpp
+++ b/src/images/SkImageDecoder_libgif.cpp
@@ -229,6 +229,15 @@
     }
 }
 
+int close_gif(GifFileType*);  // This function is a template argument, so can't be static.
+int close_gif(GifFileType* gif) {
+#if GIFLIB_MAJOR < 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0)
+    return DGifCloseFile(gif);
+#else
+    return DGifCloseFile(gif, NULL);
+#endif
+}
+
 SkImageDecoder::Result SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* bm, Mode mode) {
 #if GIFLIB_MAJOR < 5
     GifFileType* gif = DGifOpen(sk_stream, DecodeCallBackProc);
@@ -239,7 +248,7 @@
         return error_return(*bm, "DGifOpen");
     }
 
-    SkAutoTCallIProc<GifFileType, DGifCloseFile> acp(gif);
+    SkAutoTCallIProc<GifFileType, close_gif> acp(gif);
 
     SavedImage temp_save;
     temp_save.ExtensionBlocks=NULL;
diff --git a/src/images/SkMovie_gif.cpp b/src/images/SkMovie_gif.cpp
index 3810db5..40e5520 100644
--- a/src/images/SkMovie_gif.cpp
+++ b/src/images/SkMovie_gif.cpp
@@ -16,6 +16,10 @@
 
 #include "gif_lib.h"
 
+#if GIFLIB_MAJOR < 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0)
+#define DGifCloseFile(a, b) DGifCloseFile(a)
+#endif
+
 class SkGIFMovie : public SkMovie {
 public:
     SkGIFMovie(SkStream* stream);
@@ -50,7 +54,7 @@
 
     if (DGifSlurp(fGIF) != GIF_OK)
     {
-        DGifCloseFile(fGIF);
+        DGifCloseFile(fGIF, NULL);
         fGIF = NULL;
     }
     fCurrIndex = -1;
@@ -60,7 +64,7 @@
 SkGIFMovie::~SkGIFMovie()
 {
     if (fGIF)
-        DGifCloseFile(fGIF);
+        DGifCloseFile(fGIF, NULL);
 }
 
 static SkMSec savedimage_duration(const SavedImage* image)