Extend the timeout on long running tasks.

By default, anything using progress (even if not shown), will adjust the timeout.  Generator functions don't usually need to adjust the timeout, beacsue cherrypy only applies the timeout up to the first occurance of a `yield`.
Added a default conversion for serializing JSON.

Also fixed an issue outputting a zip file with a large number of files.  Specifically, if the file count was greater than 65535 or the compressed size was larger than 2^32-1, the existing code would fail.

Add tests to check downloading metadata with a datetime and invloke some of the large zip file code.
Merge pull request #537 from girder/cant-download-metadata-with-datetime

Added a default conversion for serializing JSON