Wrap the bucket up in a generator that closes and reestablishes the S3 connection periodically.

Last night's run ended up with the S3 connection being reset a short while in,
according to http://aws.amazon.com/articles/1904 the connection will be reset
after 100 requests.
This code will close and re-open the connection after the bucket object has
been requested 40 times.

This isn't pretty code, and it uglifies the functions in __init__.py quite a
bit. However, it lets me get my important data backed up. It needs a pass
through to refactor into something more pleasant.

https://github.com/gordonsyme/tardis/issues/1 tracks the fix.