## 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
db_connection = connections[DEFAULT_DB_ALIAS]
        query_counts: List[int] = []
        queries = []
        for i in range(20):
            user = User.objects.create(email=f"testuser{i}@posthog.com")
            OrganizationMembership.objects.create(user=user, organization=self.organization)
            dashboard = Dashboard.objects.create(name=f"Dashboard {i}", team=self.team)
            self._create_insight(
                data={
                    "short_id": f"insight{i}",
                    "dashboards": [dashboard.pk],
                    "filters": {"events": [{"id": "$pageview"}]},
                }
            )
            self.assertEqual(Insight.objects.count(), i + 1)
            with CaptureQueriesContext(db_connection) as capture_query_context:
                response = self.client.get(f"/api/projects/{self.team.id}/insights")
                self.assertEqual(response.status_code, status.HTTP_200_OK)
                self.assertEqual(len(response.json()["results"]), i + 1)
            query_count_for_create_and_read = len(capture_query_context.captured_queries)
            queries.append(capture_query_context.captured_queries)
            query_counts.append(query_count_for_create_and_read)
        
        self.assertTrue(
            all(x == query_counts[0] for x in query_counts),
            f"received query counts\n\n{query_counts}\n\nwith queries:\n\n{queries}",
        )
    @freeze_time("2012-01-14T03:21:34.000Z")
    def test_create_insight_items(self):