support for interpreting XML-formatted response body

how to return xml error message

How to reproduce

1. store object in s3
2. archive to glacier
3. $ aws cp s3://bucket/glacier/foo.jpg  foo.jpg

You'll get XML-formatted response body as follows:
```
<?xml version="1.0" encoding="UTF-8"?>\n<Error><Code>InvalidObjectState</Code><Message>The operation is not valid for the object\'s storage class</Message><RequestId>C1E9DD0E49204444</RequestId><HostId>dummy</HostId></Error>
```

before fix

```
download failed: s3://bucket/glacier/foo.jpg to ./foo.jpg A client error (Unknown) occurred when calling the GetObject operation: Unknown
```

after fix

```
download failed: s3://bucket/glacier/foo.jpg to ./foo.jpg A client error (InvalidObjectState) occurred when calling the GetObject operation: The operation is not valid for the object's storage class
```