<!-- 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
```
self.assertEqual(attrs, expected)
        
        test_api_name = 'test-api'
        api = [a for a in apigateway.get_rest_apis()['items'] if a['name'] == test_api_name][0]
        responses = apigateway.get_gateway_responses(restApiId=api['id'])['items']
        self.assertEqual(len(responses), 2)
        types = [r['responseType'] for r in responses]
        self.assertEqual(set(types), set(['UNAUTHORIZED', 'DEFAULT_5XX']))
        
        cf_client.delete_stack(StackName=stack_name)
        
        self.assertFalse(bucket_exists('cf-test-bucket-1'))
        self.assertFalse(queue_exists('cf-test-queue-1'))
        self.assertFalse(topic_exists('%s-test-topic-1-1' % stack_name))
        retry(lambda: self.assertFalse(stream_exists('cf-test-stream-1')))
        self.assertFalse(stream_consumer_exists('cf-test-stream-1', 'c1'))
    def test_list_stack_events(self):
        cloudformation = aws_stack.connect_to_service('cloudformation')
        response = cloudformation.describe_stack_events()
        self.assertEqual(response['ResponseMetadata']['HTTPStatusCode'], 200)
    def test_validate_template(self):
        cloudformation = aws_stack.connect_to_service('cloudformation')
        template = template_preparer.template_to_json(load_file(TEST_VALID_TEMPLATE))
        resp = cloudformation.validate_template(TemplateBody=template)
        self.assertEqual(resp['ResponseMetadata']['HTTPStatusCode'], 200)
        self.assertIn('Parameters', resp)
        self.assertEqual(len(resp['Parameters']), 1)
        self.assertEqual(resp['Parameters'][0]['ParameterKey'], 'KeyExample')
        self.assertEqual(resp['Parameters'][0]['Description'], 'The EC2 Key Pair to allow SSH access to the instance')
    def test_validate_invalid_json_template_should_fail(self):