### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

If the describeStream with latest shardId is passed, the shard id is supposed to be excluded from the list but the response contains that shard id to.

Here is the documentation that the shard needs to be excluded, this is used for pagination purposes.

https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_StreamDescription.html

This issue causes problems in using localstack dynamodb streams along with flink, as this shard is always assumed as newly discovered shard resulting in consuming the same messages again.

### Expected Behavior

The shard id that is included as part of `DescribeStreams` should not be returned in the response.

### 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



### Environment

```markdown
OS:  Mac
LocalStack: latest
```

```
 ~ aws --endpoint-url http://localhost:4566 --region=us-east-1 dynamodbstreams  describe-stream --stream-arn arn:aws:dynamodb:us-east-1:000000000000:table/FDXTable/stream/2022-05-27T17:21:56.267 --exclusive-start-shard-id shardId-00000001653700000000-000000000000  
{
    "StreamDescription": {
        "StreamArn": "arn:aws:dynamodb:us-east-1:000000000000:table/FDXTable/stream/2022-05-27T17:21:56.267",
        "StreamLabel": "2022-05-27T17:21:56.267",
        "StreamStatus": "ENABLED",
        "StreamViewType": "NEW_IMAGE",
        "TableName": "FDXTable",
        "KeySchema": [
            {
                "AttributeName": "Id",
                "KeyType": "HASH"
            }
        ],
        "Shards": [
            {
                "ShardId": "shardId-00000001653700000000-000000000000",
                "SequenceNumberRange": {
                    "StartingSequenceNumber": "49629907235008115231694315947888915499042828007579320322"
                }
            }
        ]
    }
}

```

https://github.com/localstack/localstack/blob/master/localstack/services/dynamodbstreams/provider.py#L51
the input parameter is never used. the shard ids are in ascending order and so all the shard ids less than or equal to passed shard id should be excluded from the result

### Anything else?

_No response_
table_name = f"test-table-{short_uid()}"
        num_gsis = 25
        attrs = [{"AttributeName": f"a{i}", "AttributeType": "S"} for i in range(num_gsis)]
        gsis = [
            {
                "IndexName": f"gsi_{i}",
                "KeySchema": [{"AttributeName": f"a{i}", "KeyType": "HASH"}],
                "Projection": {"ProjectionType": "ALL"},
            }
            for i in range(num_gsis)
        ]
        dynamodb.create_table(
            TableName=table_name,
            KeySchema=[{"AttributeName": "id", "KeyType": "HASH"}],
            AttributeDefinitions=[{"AttributeName": "id", "AttributeType": "S"}, *attrs],
            GlobalSecondaryIndexes=gsis,
            BillingMode="PAY_PER_REQUEST",
        )
        table = dynamodb_client.describe_table(TableName=table_name)
        assert len(table["Table"]["GlobalSecondaryIndexes"]) == num_gsis
        # cl
        delete_table(table_name)
    def test_return_values_in_put_item(self, dynamodb):