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
On the ListBuckets test, one test verifies that listing buckets with no setup returns an empty list. So if you put that in BasicTestSuperclass.setUp() then the test will fail. So to fix that, you have the following options:
 - Delete the bucket before the test in ListBucketsTest
 - Stop ListBucketsTest from inheriting BasicTestSuperclass, and then duplicate all of the Server start/create client code in BasicTestSuperclass in ListBucketsTest
 - Add another class called TestWithDefaultBucket that inherits BasicTestSuperclass and creates the default bucket
 - Leave it as it is