Fixing issues with S3 Exists

Hi,

I was having some trouble with the Exists method in the S3 package. The old code was expecting there to be something in err to see if it was a 404 or 403. I had a situation where an object was in the bucket on S3, so there was nothing in err. This caused a panic. 

This PR shuffles around the error handling behavior for Exists, adds some tests, and has go fmt run against it.

Thanks,
Dave