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

# Type of request: This is a ...

[ x ] bug report
[ ] feature request

# Detailed description

When I try to list stacks and filter the stack status, it lists all the stacks rather than filter them out.

I saw someone had this issue before and was meant to be fixed, but doesnt seem like its fixed:
- https://github.com/localstack/localstack/issues/2698

## Expected behavior

Stacks should be filtered


## Actual behavior

All stacks are returned

# Steps to reproduce

Run latest docker version of localstack.
Create new stack
Try to run something like:
aws --endpoint-url=http://localhost:4566 cloudformation list-stacks --stack-status-filter DELETE_FAILED

It will return all stacks when it should return an empty list

## Command used to start LocalStack
docker run --network host -d -e DEFAULT_REGION="eu-west-1" localstack/localstack:latest

## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)
aws --endpoint-url=http://localhost:4566 cloudformation list-stacks --stack-status-filter DELETE_FAILED

Using boto3, the same thing happens:
response = self.__cloudformation_client.list_stacks(StackStatusFilter=['CREATE_FAILED'])

...

for resource_id, resource in self.template_resources.items():
            resource['LogicalResourceId'] = self.template_original['Resources'][resource_id]['LogicalResourceId'] = (
                resource.get('LogicalResourceId') or resource_id)
        
        self.template['StackId'] = self.metadata['StackId'] = (self.metadata.get('StackId') or
            aws_stack.cloudformation_stack_arn(self.stack_name, short_uid()))
        self.template['Parameters'] = self.template.get('Parameters') or {}
        self.template['Outputs'] = self.template.get('Outputs') or {}
        
        self.metadata['Parameters'] = self.metadata.get('Parameters') or []
        self.metadata['StackStatus'] = 'CREATE_IN_PROGRESS'
        self.metadata['CreationTime'] = self.metadata.get('CreationTime') or timestamp_millis()
        
        self.resource_states = {}
        
        self.moto_resource_statuses = {}
        
        self.events = []
        
        self.change_sets = []
        
        for i in range(1, 100):
            key = 'Parameters.member.%s.ParameterKey' % i
            value = 'Parameters.member.%s.ParameterValue' % i
            key = self.metadata.get(key)
            value = self.metadata.get(value)
            if not key:
                break
            self.metadata['Parameters'].append({'ParameterKey': key, 'ParameterValue': value})
    def describe_details(self):