## Is your feature request related to a problem?

When setting up dashboards I'd like to filter the stats to a certain page/subdomain. 

## Describe the solution you'd like

Allow adding a extra filters for all graphs on a dashboard (e.g. filter by $current_url)

## Describe alternatives you've considered

Updating every graph in dashboard one-by-one and then reverting them back.

## Additional context

Related to https://github.com/PostHog/posthog/issues/780

Datadog has a decent solution for this: https://docs.datadoghq.com/dashboards/template_variables/, which I think we can simplify and use ourselves.

Came up during #2560 

#### *Thank you* for your feature request – we love each and every one!

posthog/api/test/test_insight.py
_create_event(team=self.team, event="user signed up", distinct_id="1")
        _create_event(team=self.team, event="user did things", distinct_id="1")
        response = self.client.get(
            f"/api/projects/{self.team.id}/insights/funnel/?funnel_window_days=14&events={json.dumps([{'id': 'user signed up', 'type': 'events', 'order': 0},{'id': 'user did things', 'type': 'events', 'order': 1},])}"
        ).json()
        
        self.assertEqual(len(response["result"]), 2)
        self.assertEqual(response["result"][0]["name"], "user signed up")
        self.assertEqual(response["result"][1]["name"], "user did things")
    def test_insight_retention_basic(self):
        _create_person(team=self.team, distinct_ids=["person1"], properties={"email": "person1@test.com"})
        _create_event(
            team=self.team, event="$pageview", distinct_id="person1", timestamp=timezone.now() - timedelta(days=11),
        )
        _create_event(
            team=self.team, event="$pageview", distinct_id="person1", timestamp=timezone.now() - timedelta(days=10),
        )
        response = self.client.get(f"/api/projects/{self.team.id}/insights/retention/",).json()
        self.assertEqual(len(response["result"]), 11)
    def test_insight_with_specified_token(self):