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.
"""Tests for the existence of the specified bucket. Returns the error code
    if the bucket does not exist (200 if the bucket does exist).
    """
    bucket_name = normalize_bucket_name(bucket_name)
    s3_client = aws_stack.connect_to_service('s3')
    try:
        s3_client.head_bucket(Bucket=bucket_name)
    except ClientError as err:
        error_code = err.response.get('Error').get('Code')
        return False, error_code
    return True, 200
def check_content_md5(data, headers):
    actual = md5(strip_chunk_signatures(data))
    expected = headers['Content-MD5']
    try:
        expected = to_str(codecs.encode(base64.b64decode(expected), 'hex'))
    except Exception:
        expected = '__invalid__'
    if actual != expected:
        return error_response('The Content-MD5 you specified was invalid', 'InvalidDigest', status_code=400)
def error_response(message, code, status_code=400):