**Description**

Add the missing AWS Operators for the three (get/put/delete) AWS S3 bucket tagging APIs, including testing.

**Use case / motivation**

I am looking to add an Operator that will implement the existing API functionality to manage the tags on an AWS S3 bucket.

**Are you willing to submit a PR?**

Yes

**Related Issues**

None that I saw

tests/providers/amazon/aws/hooks/test_s3.py
hook = S3Hook()
        hook.load_string("Contént", "my_key", s3_bucket, compression='gzip')
        resource = boto3.resource('s3').Object(s3_bucket, 'my_key')  # p
        data = gz.decompress(resource.get()['Body'].read())
        assert data == b'Cont\xC3\xA9nt'
    def test_load_string_compress_exception(self, s3_bucket):
        hook = S3Hook()
        with pytest.raises(NotImplementedError):
            hook.load_string("Contént", "my_key", s3_bucket, compression='bad-compression')
    def test_load_string_acl(self, s3_bucket):
        hook = S3Hook()
        hook.load_string("Contént", "my_key", s3_bucket, acl_policy='public-read')
        response = boto3.client('s3').get_object_acl(Bucket=s3_bucket, Key="my_key", RequestPayer='requester')
        assert (response['Grants'][1]['Permission'] == 'READ') and (
            response['Grants'][0]['Permission'] == 'FULL_CONTROL'
        )
    def test_load_bytes(self, s3_bucket):
        hook = S3Hook()
        hook.load_bytes(b"Content", "my_key", s3_bucket)
        resource = boto3.resource('s3').Object(s3_bucket, 'my_key')  # p
        assert resource.get()['Body'].read() == b'Content'
    def test_load_bytes_acl(self, s3_bucket):
        hook = S3Hook()
        hook.load_bytes(b"Content", "my_key", s3_bucket, acl_policy='public-read')
        response = boto3.client('s3').get_object_acl(Bucket=s3_bucket, Key="my_key", RequestPayer='requester')
        assert (response['Grants'][1]['Permission'] == 'READ') and (
            response['Grants'][0]['Permission'] == 'FULL_CONTROL'
        )
    def test_load_fileobj(self, s3_bucket):