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.
key_by_path = 'key-by-hostname'
        queue_url, queue_attributes = self._create_test_queue()
        self._create_test_notification_bucket(queue_attributes)
        
        self._perform_multipart_upload(bucket=TEST_BUCKET_WITH_NOTIFICATION, key=key_by_path, zip=True)
        self.assertEqual(self._get_test_queue_message_count(queue_url), '1')
        
        self.sqs_client.delete_queue(QueueUrl=queue_url)
        self._delete_bucket(TEST_BUCKET_WITH_NOTIFICATION, [key_by_path])
    def test_s3_multipart_upload_acls(self):
        bucket_name = 'test-bucket-%s' % short_uid()
        self.s3_client.create_bucket(Bucket=bucket_name, ACL='public-read')
        def check_permissions(key, expected_perms):
            grants = self.s3_client.get_object_acl(Bucket=bucket_name, Key=key)['Grants']
            grants = [g for g in grants if 'AllUsers' in g.get('Grantee', {}).get('URI', '')]
            self.assertEquals(len(grants), 1)
            permissions = grants[0]['Permission']
            permissions = permissions if isinstance(permissions, list) else [permissions]
            self.assertEquals(len(permissions), expected_perms)
        
        self.s3_client.put_object(Bucket=bucket_name, Key='acl-key0', Body='something')
        check_permissions('acl-key0', 1)
        self._perform_multipart_upload(bucket=bucket_name, key='acl-key1')
        check_permissions('acl-key1', 1)
        self._perform_multipart_upload(bucket=bucket_name, key='acl-key2', acl='public-read-write')
        check_permissions('acl-key2', 2)
    def test_s3_presigned_url_upload(self):