### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Sending an S3 `DeleteObjects` request with `boto3` works fine.
But when sending the same request using the official AWS Rust SDK, the request fails with an `IndexError: string index out of range` error.

```
2023-01-16T16:15:30.875 DEBUG --- [   asgi_gw_0] l.aws.serving.wsgi         : POST 127.0.0.1:4566/data-server/?delete&x-id=DeleteObjects
2023-01-16T16:15:30.880 ERROR --- [   asgi_gw_0] l.aws.handlers.logging     : exception during call chain
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/localstack/aws/chain.py", line 90, in handle
    handler(self, self.context, response)
  File "/usr/local/lib/python3.10/dist-packages/localstack/aws/handlers/service.py", line 122, in __call__
    handler(chain, context, response)
  File "/usr/local/lib/python3.10/dist-packages/localstack/aws/handlers/legacy.py", line 81, in __call__
    result = self.forward_request(
  File "/usr/local/lib/python3.10/dist-packages/localstack/aws/handlers/legacy.py", line 141, in forward_request
    return do_forward_request(
  File "/usr/local/lib/python3.10/dist-packages/localstack/services/edge.py", line 224, in do_forward_request
    result = do_forward_request_inmem(api, method, path, data, headers, port=port)
  File "/usr/local/lib/python3.10/dist-packages/localstack/services/edge.py", line 248, in do_forward_request_inmem
    response = modify_and_forward(
  File "/usr/local/lib/python3.10/dist-packages/localstack/services/generic_proxy.py", line 322, in wrapper
    value = func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/localstack/services/generic_proxy.py", line 495, in modify_and_forward
    updated_response = listener.return_response(
  File "/usr/local/lib/python3.10/dist-packages/localstack/services/s3/s3_listener.py", line 1654, in return_response
    object_path = parts[1] if parts[1][0] == "/" else "/%s" % parts[1]
IndexError: string index out of range
```

### Expected Behavior

S3 `DeleteObjects` requests should work no matter what the client is.

### How are you starting LocalStack?

With the `localstack` script

### Steps To Reproduce

Using `LS_LOG=trace-internal`, I was able to isolate the difference between `boto3` and the AWS Rust SDK.

**boto3**
```2023-01-16T16:15:33.056 DEBUG --- [   asgi_gw_0] l.aws.serving.wsgi         : POST localhost:4566/data-server?delete```

**AWS Rust SDK**
```2023-01-16T16:15:32.525 DEBUG --- [   asgi_gw_2] l.aws.serving.wsgi         : POST 127.0.0.1:4566/data-server/?delete&x-id=DeleteObjects```

If I understand the logic correctly, we get the out-of-range index error at line https://github.com/localstack/localstack/blob/6dda0b1af0639de16fe8fb36be8ebb736a077925/localstack/services/s3/s3_listener.py#L1644 because of a false positive on https://github.com/localstack/localstack/blob/6dda0b1af0639de16fe8fb36be8ebb736a077925/localstack/services/s3/s3_listener.py#L1612

The issue seems to be triggered (and thus reproducible) by having a forward slash after the bucket name in the URL. 

The issue is fixed by replacing `path` with `parsed.path` at line https://github.com/localstack/localstack/blob/6dda0b1af0639de16fe8fb36be8ebb736a077925/localstack/services/s3/s3_listener.py#L1619

Given the following comment preceding this line, I believe this change is the right fix. Though I only discovered `localstack` a few hours ago, I'm happy to open a PR if I'm not completely mistaken. Though I would suggest someone who's fluent with localstack's codebase to also add a unit test.

```python
# check if this is an actual put object request, because it could also be
# a put bucket request with a path like this: /bucket_name/
```

### Environment

```markdown
- OS: Ubuntu 22.04
- LocalStack: 1.3.1 (`pip install localstack[runtime]`)
```


### Anything else?

_No response_
"""Exception to indicate that a bucket cannot be found"""
    def __init__(self):
        super().__init__(
            code="NoSuchBucket",
            message="The specified bucket does not exist",
            status_code=404,
        )
class BackendState:
    """
    Utility class that encapsulates access to additional state attributes like bucket
    notifications, CORS settings, lifecycle configurations, etc.
    The state attributes themselves are attached to the moto S3 bucket objects directly,
    which simplifies handling of persistence.
    """
    @classmethod
    def notification_configs(cls, bucket_name: str) -> List[Dict]:
        """Return the list of notification configurations for the given S3 bucket"""
        return cls._bucket_attribute(bucket_name, "_notifications", [])
    @classmethod
    def cors_config(cls, bucket_name: str) -> Dict:
        """Return the CORS settings for the given S3 bucket"""
        return cls._bucket_attribute(bucket_name, "_cors", {})
    @classmethod
    def lifecycle_config(cls, bucket_name: str) -> Dict: