Refactoring S3 responses.

This makes the API for generating responses a little nicer.

Note that FakeAWS::S3::Responses::ErrorResponse has become FakeAWS::S3::Responses::Error, replacing the old  FakeAWS::S3::Responses::Error. This has confused the diffs, so you're probably better off looking at the source for that file rather than the diff.