### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Here are the kinesis events from inserting/deleting a dynamodb item:

```
{"eventID":"cf1199b0","eventVersion":"1.1","dynamodb":{"ApproximateCreationDateTime":1.635284406858227E9,"SizeBytes":56,"Keys":{"hash":{"S":"hash-691"},"range":{"S":"range-153"}},"NewImage":{"hash":{"S":"hash-691"},"range":{"S":"range-153"}}},"awsRegion":"us-east-1","eventSource":"aws:dynamodb","eventName":"INSERT","tableName":"bug"}

{"eventID":"976b515b","eventVersion":"1.1","dynamodb":{"ApproximateCreationDateTime":1.6352844070969691E9,"SizeBytes":4,"Keys":{"hash":{"S":"hash-691"},"range":{"S":"range-153"}},"OldImage":null},"awsRegion":"us-east-1","eventSource":"aws:dynamodb","eventName":"REMOVE","tableName":"bug"}
```

Note that the remove event has `OldImage` = `null`

### Expected Behavior

I expected `OldImage` to be `{"hash":{"S":"hash-691"},"range":{"S":"range-153"}}`.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

https://github.com/achaphiv/issue-localstack-dynamodb-stream-to-kinesis

```
# Create table/stream and hook them up
docker-compose up -d

# Create/delete an item
./mvnw -P write-to-dynamodb

# See the produced records
./mvnw -P watch-kinesis
```

### Environment

```markdown
- OS: Manjaro Linux
- LocalStack: 0.12.19
```


### Anything else?

_No response_
stream_spec = dynamodb_get_table_stream_specification(table_name=table_name)
                if stream_spec:
                    record["dynamodb"]["StreamViewType"] = stream_spec["StreamViewType"]
        elif action == "BatchWriteItem":
            records, unprocessed_items = self.prepare_batch_write_item_records(record, data)
            for record in records:
                event_sources_or_streams_enabled = (
                    event_sources_or_streams_enabled
                    or has_event_sources_or_streams_enabled(
                        record["eventSourceARN"], streams_enabled_cache
                    )
                )
            if response.status_code == 200 and any(unprocessed_items):
                content = json.loads(to_str(response.content))
                table_name = list(data["RequestItems"].keys())[0]
                if table_name not in content["UnprocessedItems"]:
                    content["UnprocessedItems"][table_name] = []
                for key in ["PutRequest", "DeleteRequest"]:
                    if any(unprocessed_items[key]):
                        content["UnprocessedItems"][table_name].append(
                            {key: unprocessed_items[key]}
                        )
                unprocessed = content["UnprocessedItems"]
                for key in list(unprocessed.keys()):
                    if not unprocessed.get(key):
                        del unprocessed[key]
                response._content = json.dumps(content)
                fix_headers_for_updated_response(response)
        elif action == "TransactWriteItems":
            records = self.prepare_transact_write_item_records(record, data)