Error handling

 - Added more error handling and an error response helper class following the guidelines here: http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
 - Added list buckets and list objects functionality along with corresponding tests
 - Stopped S3Server from creating a default bucket all the time
 - Added .gitignore file
 - Added creation date to buckets
 - Added constants for HTTP methods and HTTP headers
 - Sped up the tests by removing unnecessary calls to Thread.sleep
Yeah, my preference is that the test setUp (inherited or otherwise) does nothing more than make it possible to perform a test. For me, something like creating a bucket and adding a file to it seems test case specific; I'd want to see the call that does that in the test case. I don't think you could intuitively know that BasicTestSuperclass is going to create a bucket and stuff, and having to undo some of the setup in other tests seems kind of horrible to me.

Having said that, I can live with it as is, it's test code.