### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

With the latest docker image a boto3 `put_object` call with a non-latin1 key results in a 500.

Quick example, with `localstack/localstack:latest` running in docker-compose at the host `localstack`:
```bash
# Attempt to upload file.
$ python upload_test.py
ClientError: An error occurred (500) when calling the PutObject operation (reached max retries: 4): Internal Server Error
```

Stack track from localstack container:
```python
2022-04-22T20:14:21.148:INFO:localstack.utils.threads: Thread run method <function AdaptiveThreadPool.submit.<locals>._run at 0x7f4228aca700>(None) failed: 'latin-1' codec can't encode character '\u0100' in position 29: ordinal not in range(256) Traceback (most recent call last):
  File "/opt/code/localstack/localstack/utils/threads.py", line 38, in run
    result = self.func(self.params, **kwargs)
  File "/opt/code/localstack/localstack/utils/asyncio.py", line 30, in _run
    return fn(*args, **kwargs)
  File "/opt/code/localstack/localstack/services/generic_proxy.py", line 972, in handler
    return modify_and_forward(
  File "/opt/code/localstack/localstack/services/generic_proxy.py", line 516, in wrapper
    value = func(*args, **kwargs)
  File "/opt/code/localstack/localstack/services/generic_proxy.py", line 596, in modify_and_forward
    listener_result = listener.forward_request(
  File "/opt/code/localstack/localstack/services/internal.py", line 219, in forward_request
    return super().forward_request(method, path, data, headers)
  File "/opt/code/localstack/localstack/http/adapters.py", line 63, in forward_request
    return super().forward_request(method, path, data, headers)
  File "/opt/code/localstack/localstack/http/adapters.py", line 29, in forward_request
    request = Request(
  File "/opt/code/localstack/localstack/http/request.py", line 144, in __init__
    super(Request, self).__init__(environ)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/werkzeug/wrappers/request.py", line 120, in __init__
    path=_wsgi_decoding_dance(
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/werkzeug/_internal.py", line 153, in _wsgi_decoding_dance
    return s.encode("latin1").decode(charset, errors)
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0100' in position 29: ordinal not in range(256)
```

### Expected Behavior

On version `0.14.2` the `put_object` call completes as expected. File shows up in the bucket normally and can be fetched.

Example with same test file:
```bash
$ python upload_test.py
{'ETag': '"e99a18c428cb38d5f260853678922e03"',
 'ResponseMetadata': {'HTTPHeaders': {'access-control-allow-headers': 'authorization,cache-control,content-length,content-md5,content-type,etag,location,x-amz-acl,x-amz-content-sha256,x-amz-date,x-amz-request-id,x-amz-security-token,x-amz-tagging,x-amz-target,x-amz-user-agent,x-amz-version-id,x-amzn-requestid,x-localstack-target,amz-sdk-invocation-id,amz-sdk-request',
                                      'access-control-allow-methods': 'HEAD,GET,PUT,POST,DELETE,OPTIONS,PATCH',
                                      'access-control-allow-origin': '*',
                                      'access-control-expose-headers': 'etag,x-amz-version-id',
                                      'connection': 'close',
                                      'content-length': '0',
                                      'content-type': 'text/html; '
                                                      'charset=utf-8',
                                      'date': 'Fri, 22 Apr 2022 20:34:28 GMT',
                                      'etag': '"e99a18c428cb38d5f260853678922e03"',
                                      'last-modified': 'Fri, 22 Apr 2022 '
                                                       '20:34:28 GMT',
                                      'location': '/testbucket',
                                      'server': 'hypercorn-h11',
                                      'x-amz-id-2': 'MzRISOwyjmnupB3D2CD1CB9895A327/JypPGXLh0OVFGcJaaO3KW/hRAqKOpIEEp',
                                      'x-amz-request-id': 'B3D2CD1CB9895A32',
                                      'x-amzn-requestid': 'Q5CQSHL76V5GF8KJ6V71AKDCFDHRKCTV8WUI00W02WWYNP96GFDJ'},
                      'HTTPStatusCode': 200,
                      'RequestId': 'Q5CQSHL76V5GF8KJ6V71AKDCFDHRKCTV8WUI00W02WWYNP96GFDJ',
                      'RetryAttempts': 0}}
$
$  LOCALSTACK_HOST=localstack awslocal s3 ls testbucket
2022-04-22 20:50:53          6 Ā0
$ LOCALSTACK_HOST=localstack awslocal s3 cp s3://testbucket/Ā0 .
download: s3://testbucket/Ā0 to ./Ā0
$ xxd ./Ā0
00000000: 6162 6331 3233                           abc123
```

### 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`)
```yaml
services:
  localstack:
    # image: localstack/localstack:0.14.2
    image: localstack/localstack:latest
    environment:
      - SERVICES=s3
      - REGION=us-west-2
      - ENDPOINT=http://localstack:4566
    ports:
      - "4566:4566"
  # container to run tests
  develop:
    image: python:3.9
    entrypoint:
      - "tail"
      - "-f"
      - "/dev/null"
    environment:
      - AWS_ACCESS_KEY_ID=foobar
      - AWS_SECRET_ACCESS_KEY=foobar
    depends_on:
      - localstack
```
#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

##### Python Test File
```python
# upload_test.py
from pprint import pprint
import boto3
s3_client = boto3.client('s3', endpoint_url="http://localstack:4566")
pprint(s3_client.put_object(Bucket="testbucket", Key = 'Ā0', Body = b'abc123'))
```
##### Test Session
```bash
# Create new test bucket.
$ LOCALSTACK_HOST=localstack awslocal s3api create-bucket --bucket testbucket
{
    "Location": "/testbucket"
}
# Currently empty.
$ LOCALSTACK_HOST=localstack awslocal s3 ls testbucket
$
# Attempt to upload file.
$ python upload_test.py
Traceback (most recent call last):
  File "//upload_test.py", line 5, in <module>
    pprint(s3_client.put_object(Bucket="testbucket", Key = 'Ā0', Body = b'abc123'))
  File "/usr/local/lib/python3.9/site-packages/botocore/client.py", line 415, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python3.9/site-packages/botocore/client.py", line 745, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (500) when calling the PutObject operation (reached max retries: 4): Internal Server Error
```

### Environment

```markdown
- OS: Ubuntu 20.04
- LocalStack: latest
```


### Anything else?

Looks like this started happening after https://github.com/localstack/localstack/pull/5876.
client.create_bucket(Bucket=bucket_name)
        
        object_key = "key-by-hostname"
        client.put_object(Bucket=bucket_name, Key=object_key, Body="something")
        
        url = client.generate_presigned_url(
            "get_object", Params={"Bucket": bucket_name, "Key": object_key}, ExpiresIn=2
        )
        
        resp = requests.get(url, verify=False)
        self.assertEqual(200, resp.status_code)
        self.assertEqual("something", to_str(resp.content))
        actual_time = time.time()
        with patch("localstack.services.s3.s3_listener.is_expired", lambda v: True):
            with patch("localstack.services.s3.s3_utils.time") as fake_time:
                
                fake_time.time.return_value = actual_time + 10
                resp = requests.get(url, verify=False)
        self.assertEqual(resp.status_code, 403, resp.content)
        url = client.generate_presigned_url(
            "get_object",
            Params={"Bucket": bucket_name, "Key": object_key},
            ExpiresIn=120,
        )
        resp = requests.get(url, verify=False)
        self.assertEqual(200, resp.status_code)
        self.assertEqual("something", to_str(resp.content))
        
        self._delete_bucket(bucket_name, [object_key])
    def test_bucket_availability(self):