## 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
_, _, user2 = User.objects.bootstrap("Test", "team2@posthog.com", None)
        assert user2.team is not None
        assert self.team is not None
        assert self.user.team is not None
        self.assertNotEqual(user2.team.id, self.team.id)
        self.client.force_login(self.user)
        _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=6),
        )
        _create_event(
            team=self.team, event="$pageview", distinct_id="person1", timestamp=timezone.now() - timedelta(days=5),
        )
        events_filter = json.dumps([{"id": "$pageview"}])
        response_team1 = self.client.get(f"/api/projects/{self.team.id}/insights/trend/?events={events_filter}")
        response_team1_token = self.client.get(
            f"/api/projects/{self.team.id}/insights/trend/?events={events_filter}&token={self.user.team.api_token}"
        )
        self.client.force_login(user2)
        response_team2 = self.client.get(
            f"/api/projects/{self.team.id}/insights/trend/?events={events_filter}",
            data={"token": user2.team.api_token},
        )
        self.assertEqual(response_team1.status_code, 200)
        self.assertEqual(response_team2.status_code, 200)
        self.assertEqual(response_team1.json()["result"], response_team1_token.json()["result"])
        self.assertNotEqual(len(response_team1.json()["result"]), len(response_team2.json()["result"]))
        response_invalid_token = self.client.get(f"/api/projects/{self.team.id}/insights/trend?token=invalid")
        self.assertEqual(response_invalid_token.status_code, 401)
    def test_insight_trends_csv(self):