**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()
        bucket = hook.get_bucket(s3_bucket)
        keys = [str(i) for i in range(2)]
        for key in keys:
            bucket.put_object(Key=key, Body=b'a')
        assert sorted(keys) == sorted(hook.list_keys(s3_bucket, delimiter='/', page_size=1))
    def test_check_for_key(self, s3_bucket):
        hook = S3Hook()
        bucket = hook.get_bucket(s3_bucket)
        bucket.put_object(Key='a', Body=b'a')
        assert hook.check_for_key('a', s3_bucket) is True
        assert hook.check_for_key(f's3://{s3_bucket}//a') is True
        assert hook.check_for_key('b', s3_bucket) is False
        assert hook.check_for_key(f's3://{s3_bucket}//b') is False
    def test_check_for_key_raises_error_with_invalid_conn_id(self, monkeypatch, s3_bucket):
        monkeypatch.delenv('AWS_PROFILE', raising=False)
        monkeypatch.delenv('AWS_ACCESS_KEY_ID', raising=False)
        monkeypatch.delenv('AWS_SECRET_ACCESS_KEY', raising=False)
        hook = S3Hook(aws_conn_id="does_not_exist")
        with pytest.raises(NoCredentialsError):
            hook.check_for_key('a', s3_bucket)
    def test_get_key(self, s3_bucket):
        hook = S3Hook()
        bucket = hook.get_bucket(s3_bucket)
        bucket.put_object(Key='a', Body=b'a')
        assert hook.get_key('a', s3_bucket).key == 'a'
        assert hook.get_key(f's3://{s3_bucket}/a').key == 'a'
    def test_read_key(self, s3_bucket):