Handle unknown media length (#406)

Some media download APIs does not support partial downloads and do not
return a 'Content-length' or 'Content-range' header and is therefore
never considered done.

This change is to consider responses where the media length is
unknown to be done.

This commit could potentially break media downloads where the API
supports partial download and only returns a 'Content-length' header
when the entire file has been served/read.

This commit fixes issue #15
diff --git a/googleapiclient/http.py b/googleapiclient/http.py
index eb46449..ee8d6e3 100644
--- a/googleapiclient/http.py
+++ b/googleapiclient/http.py
@@ -658,7 +658,7 @@
     Returns:
       (status, done): (MediaDownloadProgress, boolean)
          The value of 'done' will be True when the media has been fully
-         downloaded.
+         downloaded or the total size of the media is unknown.
 
     Raises:
       googleapiclient.errors.HttpError if the response was not a 2xx.
@@ -687,7 +687,7 @@
       elif 'content-length' in resp:
         self._total_size = int(resp['content-length'])
 
-      if self._progress == self._total_size:
+      if self._total_size is None or self._progress == self._total_size:
         self._done = True
       return MediaDownloadProgress(self._progress, self._total_size), self._done
     else: