### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When attempting to call `PutRecord` or `PutRecords` with a `stream-arn`, localstack returns an error:

```
An error occurred (InternalError) when calling the PutRecord operation (reached max retries: 4): exception while calling kinesis.PutRecord: KinesisProvider.put_record() got an unexpected keyword argument 'stream_arn'
```

### Expected Behavior

Successful putting of records

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker run localstack/localstack

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

    awslocal kinesis create-stream --stream-name example
    awslocal kinesis describe-stream --stream-name example <-- extract StreamARN
    root@edab333956f5:/opt/code/localstack# awslocal kinesis put-record --stream-arn arn:aws:kinesis:eu-west-2:000000000000:stream/example --data 'example' --partition-key 1




### Environment

```markdown
- OS: Ubuntu 20.04
- LocalStack: Latest
```


### Anything else?

`put_record` does not allow stream_arn as an argument: https://github.com/localstack/localstack/blob/master/localstack/services/kinesis/provider.py#L116-L124

`put_records` does not allow stream_arn as an argument: https://github.com/localstack/localstack/blob/master/localstack/services/kinesis/provider.py#L133-L135
remove_route_table_ids: VpcEndpointRouteTableIdList = None,
        add_subnet_ids: VpcEndpointSubnetIdList = None,
        remove_subnet_ids: VpcEndpointSubnetIdList = None,
        add_security_group_ids: VpcEndpointSecurityGroupIdList = None,
        remove_security_group_ids: VpcEndpointSecurityGroupIdList = None,
        private_dns_enabled: Boolean = None,
    ) -> ModifyVpcEndpointResult:
        backend = get_ec2_backend(context.account_id, context.region)
        vpc_endpoint = backend.vpc_end_points.get(vpc_endpoint_id)
        if not vpc_endpoint:
            raise InvalidVpcEndPointIdError(vpc_endpoint_id)
        if policy_document is not None:
            vpc_endpoint.policy_document = policy_document
        if add_route_table_ids is not None:
            vpc_endpoint.route_table_ids.extend(add_route_table_ids)
        if remove_route_table_ids is not None:
            vpc_endpoint.route_table_ids = [
                id_ for id_ in vpc_endpoint.route_table_ids if id_ not in remove_route_table_ids
            ]
        if add_subnet_ids is not None:
            vpc_endpoint.subnet_ids.extend(add_subnet_ids)
        if remove_subnet_ids is not None:
            vpc_endpoint.subnet_ids = [
                id_ for id_ in vpc_endpoint.subnet_ids if id_ not in remove_subnet_ids
            ]
        if private_dns_enabled is not None:
            vpc_endpoint.private_dns_enabled = private_dns_enabled
        return ModifyVpcEndpointResult(Return=True)
    @handler("ModifySubnetAttribute", expand=False)
    def modify_subnet_attribute(