## Bug description

Currently, decide endpoint takes 10+ seconds on kea.js.org.

This means that for first-time visitors autocapture nor session recording will be turned on for that long - losing valuable information.

When measuring this yesterday via shell ([slack thread](https://posthog.slack.com/archives/C0113360FFV/p1604951621008400)), the culprit was feature flags cohort checking. In this case, the cohort user was checked against was defined against the following action:

![Screenshot from 2020-11-10 11-41-32](https://user-images.githubusercontent.com/148820/98657215-49582e80-234a-11eb-9669-37d55e0d23bd.png)

Which currently looks through events of the data for that team.

## Expected behavior

Decide endpoint should use cached/materialized cohort ownership rather than calculating it on the fly.

## How to reproduce

1. Create an action with some selector
2. Create a cohort for has done action at any point
3. Create a feature flag using the cohort.
4. Measure /decide endpoint latency

## Environment

Cloud 

## Additional context

cc @EDsCODE who made it not time out by https://github.com/PostHog/posthog/pull/2299

#### *Thank you* for your bug report – we love squashing them!
posthog/models/cohort.py
try:
            self.is_calculating = True
            self.save()
            event_query, params = (
                Person.objects.filter(self.people_filter(), team=self.team)
                .distinct("pk")
                .only("pk")
                .query.sql_with_params()
            )
            query = """
            DELETE FROM "posthog_cohortpeople" WHERE "cohort_id" = {};
            INSERT INTO "posthog_cohortpeople" ("person_id", "cohort_id")
            {}
            ON CONFLICT DO NOTHING
            """.format(
                self.pk, event_query.replace('FROM "posthog_person"', ', {} FROM "posthog_person"'.format(self.pk), 1,),
            )
            cursor = connection.cursor()
            with transaction.atomic():
                cursor.execute(query, params)
                self.is_calculating = False
                self.last_calculation = timezone.now()
                self.save()
        except:
            capture_exception()
    def __str__(self):
        return self.name
class CohortPeople(models.Model):