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

# Type of request: This is a ...

[*] bug report
[ ] feature request

# Detailed description

When setting up a FIFO SNS topic with a FIFO SQS subscriber, in the case where a `MessageGroupId` is sent to the SNS topic it fails when being sent to the SQS queue as the `MessageGroupId` isn't passed along.

## Expected behavior

`MessageGroupId` should be passed along to the SQS queue

## Actual behavior

It's not passed along and it will error with the message:

```An error occurred (MissingParameter) when calling the SendMessage operation: The request must contain the parameter MessageGroupId.```


I believe the error is around here:
https://github.com/localstack/localstack/blob/master/localstack/services/sns/sns_listener.py#L295

# Steps to reproduce

```
        aws sns create-topic --attributes=FifoTopic=true --name local_sns --endpoint-url=http://localstack:4566
        aws sqs create-queue --endpoint-url=http://localstack:4566 --queue-name local_queue
        aws --endpoint-url=http://localstack:4566 sns subscribe --topic-arn arn:aws:sns:eu-west-1:000000000000:local_sns --protocol sqs --notification-endpoint http://localstack:4566/000000000000/local_queue
```

Then sending a new message to the topic with a messagegroupid results in the error above.


## Command used to start LocalStack

Docker compose

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

...

response = Response()
    response._content = """<ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/"><Error>
        <Type>Sender</Type>
        <Code>{code_string}</Code>
        <Message>{message}</Message>
        </Error><RequestId>{req_id}</RequestId>
        </ErrorResponse>""".format(message=message, code_string=code_string, req_id=short_uid())
    response.status_code = code
    return response
def create_sns_message_body(subscriber, req_data, message_id=None):
    message = req_data['Message'][0]
    protocol = subscriber['Protocol']
    if six.PY2 and type(message).__name__ == 'unicode':
        
        message = message.encode('raw-unicode-escape')
    if is_raw_message_delivery(subscriber):
        return message
    if req_data.get('MessageStructure') == ['json']:
        message = json.loads(message)
        try:
            message = message.get(protocol, message['default'])
        except KeyError:
            raise Exception("Unable to find 'default' key in message payload")
    data = {
        'Type': req_data.get('Type', ['Notification'])[0],
        'MessageId': message_id,
        'TopicArn': subscriber['TopicArn'],