<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

# Type of request: This is a ...

[ ] bug report
[x] feature request

# Detailed description

Currently, the KinesisStreamSpecification parameter of AWS::DynamoDB::Table resource in CloudFormation is not supported and will be ignored even if this parameter is set.
We would like to be able to use this parameter.

## Expected behavior

When the following template is applied...

```yaml
---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  EventStream:
    Type: AWS::Kinesis::Stream
    Properties:
      Name: EventStream
      ShardCount: 1
  EventTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: EventTable
      AttributeDefinitions:
      - AttributeName: pkey
        AttributeType: S
      KeySchema:
      - AttributeName: pkey
        KeyType: HASH
      BillingMode: PAY_PER_REQUEST
      StreamSpecification:
        StreamViewType: NEW_IMAGE
      KinesisStreamSpecification:
        StreamArn: !GetAtt EventStream.Arn

```

We will get the following results as when we run enable-kinesis-streaming-destination.

```sh
$ awslocal dynamodb describe-kinesis-streaming-destination --table-name EventTable
{
    "TableName": "EventTable",
    "KinesisDataStreamDestinations": [
        {
            "StreamArn": "arn:aws:kinesis:us-east-1:000000000000:stream/EventStream",
            "DestinationStatus": "ACTIVE"
        }
    ]
}
```

## Actual behavior

The KinesisStreamSpecification parameter will be ignored even if this parameter is set.

```sh
$ awslocal dynamodb describe-kinesis-streaming-destination --table-name EventTable
{
    "TableName": "EventTable",
    "KinesisDataStreamDestinations": []
}
```

# Steps to reproduce

## Command used to start LocalStack

```
$ docker run --rm -p 4566:4566 localstack/localstack:0.12.11
```

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

CloudFormation templates to apply.

```yaml
---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  EventStream:
    Type: AWS::Kinesis::Stream
    Properties:
      Name: EventStream
      ShardCount: 1
  EventTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: EventTable
      AttributeDefinitions:
      - AttributeName: pkey
        AttributeType: S
      KeySchema:
      - AttributeName: pkey
        KeyType: HASH
      BillingMode: PAY_PER_REQUEST
      StreamSpecification:
        StreamViewType: NEW_IMAGE
      KinesisStreamSpecification:
        StreamArn: !GetAtt EventStream.Arn

```

Check the results.

```sh
awslocal dynamodb describe-kinesis-streaming-destination --table-name EventTable
```

Manually enable kinesis streaming.

```sh
awslocal dynamodb enable-kinesis-streaming-destination --table-name EventTable --stream-arn arn:aws:kinesis:us-east-1:000000000000:stream/EventStream
```
operand1 = resolve_refs_recursively(stack_name, operand1, resources)
            operand2 = resolve_refs_recursively(stack_name, operand2, resources)
            return str(operand1) == str(operand2)
        if stripped_fn_lower == 'select':
            index, values = value[keys_list[0]]
            index = resolve_refs_recursively(stack_name, index, resources)
            values = resolve_refs_recursively(stack_name, values, resources)
            return values[index]
        if stripped_fn_lower == 'split':
            delimiter, string = value[keys_list[0]]
            delimiter = resolve_refs_recursively(stack_name, delimiter, resources)
            string = resolve_refs_recursively(stack_name, string, resources)
            return string.split(delimiter)
        if stripped_fn_lower == 'getazs':
            region = resolve_refs_recursively(stack_name, value['Fn::GetAZs'], resources) or aws_stack.get_region()
            azs = []
            for az in ('a', 'b', 'c', 'd'):
                azs.append('%s%s' % (region, az))
            return azs
        if stripped_fn_lower == 'base64':
            value_to_encode = value[keys_list[0]]
            value_to_encode = resolve_refs_recursively(stack_name, value_to_encode, resources)
            return to_str(base64.b64encode(to_bytes(value_to_encode)))
        for key, val in dict(value).items():
            value[key] = resolve_refs_recursively(stack_name, val, resources)
    if isinstance(value, list):
        for i in range(len(value)):
            value[i] = resolve_refs_recursively(stack_name, value[i], resources)
    return value
def resolve_placeholders_in_string(result, stack_name=None, resources=None):