### 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
@staticmethod
    def get_store(account_id: str, region_name: str) -> KinesisStore:
        return kinesis_stores[account_id][region_name]
    def get_forward_url(self):
        """Return the URL of the backend Kinesis server to forward requests to"""
        account_id = get_aws_account_id()
        starter.start_kinesis(account_id=account_id)
        return f"http://{LOCALHOST}:{starter.get_server(account_id).port}"
    def subscribe_to_shard(
        self,
        context: RequestContext,
        consumer_arn: ConsumerARN,
        shard_id: ShardId,
        starting_position: StartingPosition,
    ) -> SubscribeToShardOutput:
        kinesis = aws_stack.connect_to_service("kinesis")
        stream_name = find_stream_for_consumer(consumer_arn)
        iter_type = starting_position["Type"]
        kwargs = {}
        starting_sequence_number = starting_position.get("SequenceNumber") or "0"
        if iter_type in ["AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER"]:
            kwargs["StartingSequenceNumber"] = starting_sequence_number
        elif iter_type in ["AT_TIMESTAMP"]:
            
            timestamp = starting_position.get("Timestamp") or 1459799926.480
            kwargs["Timestamp"] = timestamp
        initial_shard_iterator = kinesis.get_shard_iterator(
            StreamName=stream_name, ShardId=shard_id, ShardIteratorType=iter_type, **kwargs
        )["ShardIterator"]
        def event_generator():