Change synchronized blocks around SimpleDateFormat to ThreadLocal instances

As SimpleDateFormat recommends, SimpleDateFormat has been moved to a ThreadLocal instance that's friendlier to shorter lived connections to S3. Given that every 100 requests, a S3 connection must be refreshed, this class can frequently become contended over in moderate traffic (1000 req/s) environments.