### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Localstack (1.0.2) returns what appears to be an incorrect error response when calling `get-object` against a non-existent bucket:

```
$ awslocal --debug s3api get-object --bucket=not-exists-2341234 --key=doesnt-matter.txt doesnt-matter.txt 2>&1 | grep Error | uniq
b"<?xml version='1.0' encoding='utf-8'?>\n<ErrorResponse><Error><Code>NoSuchBucket</Code><Message>The specified bucket does not exist</Message><Type>Sender</Type></Error><RequestId>3FA3WN14HJTCNKT0TFF6LIKTAUQ0XO3AB7MUCIQAIW8KST6T0BA1</RequestId></ErrorResponse>"
```

```
$ aws --debug s3api get-object --bucket=not-exists-2341234 --key=doesnt-matter.txt doesnt-matter.txt 2>&1 | grep Error | uniq
b'<?xml version="1.0" encoding="UTF-8"?>\n<Error><Code>NoSuchBucket</Code><Message>The specified bucket does not exist</Message><BucketName>not-exists-2341234</BucketName><RequestId>99NA328HYHDQH2VN</RequestId><HostId>Kp5IOfCoHrw8Hvo8VL+f994yByXJGECQ4Fy5eNoY/7MPpMcHz2QygoG23ILrmF1TkiYoR+k2Njg=</HostId></Error>'
```
Pretty-printing the XML makes the difference in behaviour clearer:

```xml
<ErrorResponse>
    <Error>
        <Code>NoSuchBucket</Code>
        <Message>The specified bucket does not exist</Message>
        <Type>Sender</Type>
    </Error>. 
    <RequestId>3FA3WN14HJTCNKT0TFF6LIKTAUQ0XO3AB7MUCIQAIW8KST6T0BA1</RequestId>
</ErrorResponse>
```

vs

```xml
<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist</Message>
    <BucketName>not-exists-2341234</BucketName>
    <RequestId>99NA328HYHDQH2VN</RequestId>. 
    <HostId>Kp5IOfCoHrw8Hvo8VL+f994yByXJGECQ4Fy5eNoY/7MPpMcHz2QygoG23ILrmF1TkiYoR+k2Njg=</HostId>
</Error>
```

I've also observed the same behaviour when calling the `get-object` API from the Rust SDK.

The problem does not appear prior to version `1.0.0`.

### Expected Behavior

The returned error should have the format described in the spec:

https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker run -p 4566:4566 localstack/localstack:1.0.2

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

    awslocal --debug s3api get-object --bucket=not-exists-2341234 --key=doesnt-matter.txt doesnt-matter.txt 2>&1 | grep Error | uniq


### Environment

```markdown
- OS: OSX
- LocalStack: 1.0.2
```


### Anything else?

The same behaviour is observed on `1.0.0`. Reverting to `0.14.5` we see:

```xml
<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist</Message>
    <BucketName></BucketName>
    <RequestID>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</RequestID>
</Error>
```

which is the correct behaviour.
import base64
import codecs
import collections
import datetime
import io
import json
import logging
import random
import re
import uuid
from typing import Any, Dict, List
from urllib.parse import parse_qs, parse_qsl, quote, unquote, urlencode, urlparse, urlunparse
import botocore.config
import dateutil.parser
import xmltodict
from botocore.client import ClientError
from moto.s3.exceptions import InvalidFilterRuleName, MissingBucket
from moto.s3.models import FakeBucket, s3_backend
from pytz import timezone
from requests.models import Request, Response
from localstack import config, constants
from localstack.aws.api import CommonServiceException
from localstack.services.generic_proxy import ProxyListener
from localstack.services.s3 import multipart_content
from localstack.services.s3.s3_utils import (
    ALLOWED_HEADER_OVERRIDES,
    SIGNATURE_V2_PARAMS,
    SIGNATURE_V4_PARAMS,