Use an S3 connection pool for blob saving.

It turns out that initializing a new S3 connection for every object you save to
S3 is really expensive. Instead, maintain a pool of worker greenlets, each of
which maintains a persistent S3 connection. (Note that an S3 connection cannot
be shared across greenlets.)