Deleting a non-existent key through s3api's delete-objects should return a valid response..

```
aws s3api delete-objects --bucket my-bucket --delete '{\"Objects\":[{\"Key\":\"my-key\"}]}'
```
Gives...
```
{
    "Deleted": [
        {
            "Key": "my-key"
        }
    ]
}
```

Deleting a non-existent key through s3api's delete-objects on LocalStack returns an error response without any additional information beyond the key.

```
aws s3api delete-objects --bucket my-bucket --delete '{"Objects":[{"Key":"my-key"}]}' --endpoint-url http://localhost:4572
```
Gives...
```
{
    "ResponseMetadata": {
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
            "server": "BaseHTTP/0.6 Python/3.7.5",
            "date": "Fri, 20 Dec 2019 16:02:39 GMT",
            "content-type": "application/xml; charset=utf-8",
            "content-length": "180",
            "access-control-allow-origin": "*",
            "last-modified": "Fri, 20 Dec 2019 16:02:39 GMT",
            "access-control-allow-methods": "HEAD,GET,PUT,POST,DELETE,OPTIONS,PATCH",
            "access-control-allow-headers": "authorization,content-type,content-md5,cache-control,x-amz-content-sha256,x-amz-date,x-amz-security-token,x-amz-user-agent,x-amz-target,x-amz-acl,x-amz-version-id,x-localstack-target,x-amz-tagging",
            "access-control-expose-headers": "x-amz-version-id"
        },
        "RetryAttempts": 0
    },
    "Errors": [
        {
            "Key": "my-key"
        }
    ]
}
```

Deleting an existent key seems to work fine.
result = {'Error': {'Code': code, 'Message': message}}
    content = xmltodict.unparse(result)
    headers = {'content-type': 'application/xml'}
    return requests_response(content, status_code=status_code, headers=headers)
def expand_redirect_url(starting_url, key, bucket):
    """ Add key and bucket parameters to starting URL query string. """
    parsed = urlparse.urlparse(starting_url)
    query = collections.OrderedDict(urlparse.parse_qsl(parsed.query))
    query.update([('key', key), ('bucket', bucket)])
    redirect_url = urlparse.urlunparse((
        parsed.scheme, parsed.netloc, parsed.path,
        parsed.params, urlparse.urlencode(query), None))
    return redirect_url
def is_bucket_specified_in_domain_name(path, headers):
    host = headers.get('host', '')
    return re.match(r'.*s3(\-website)?\.([^\.]+\.)?amazonaws.com', host)
def is_object_specific_request(path, headers):
    """ Return whether the given request is specific to a certain S3 object.
        Note: the bucket name is usually specified as a path parameter,
        but may also be part of the domain name! """
    bucket_in_domain = is_bucket_specified_in_domain_name(path, headers)
    parts = len(path.split('/'))
    return parts > (1 if bucket_in_domain else 2)
def normalize_bucket_name(bucket_name):
    bucket_name = bucket_name or ''
    
    bucket_name = bucket_name.lower()
    return bucket_name
def get_key_name(path, headers):