## 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_dashboard.py
dashboard = Dashboard.objects.create(team=self.team, share_token="testtoken", name="public dashboard")
        self._create_insight(
            {
                "dashboards": [dashboard.pk],
                "name": "dashboard item",
                "last_refresh": now(),  
            }
        )
        dashboard_item = Insight.objects.get()
        self.assertEqual(dashboard_item.name, "dashboard item")
        self.assertEqual(list(dashboard_item.dashboards.all()), [dashboard])
        
        self.assertRegex(dashboard_item.short_id, r"[0-9A-Za-z_-]{8}")
    def test_share_token_lookup_is_shared_true(self):
        _, other_team, _ = User.objects.bootstrap("X", "y@x.com", None)
        dashboard = Dashboard.objects.create(
            team=other_team, share_token="testtoken", name="public dashboard", is_shared=True
        )
        
        response = self.client.get(f"/api/projects/{self.team.id}/dashboards/{dashboard.pk}/")
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
        
        self.client.logout()
        response = self.client.get(f"/api/projects/{self.team.id}/dashboards/{dashboard.pk}/")
        self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
        
        response = self.client.get(f"/api/shared_dashboards/testtoken")
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json()["name"], "public dashboard")
    def test_share_token_lookup_is_shared_false(self):