## 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
another_team = Team.objects.create(organization=self.organization)
        another_team_dashboard = Dashboard.objects.create(team=another_team, name="Another Team's Dashboard")
        response = self.client.post(
            f"/api/projects/{self.team.id}/dashboards/",
            {"name": "another", "use_dashboard": another_team_dashboard.id,},
        )
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
    def test_return_cached_results_dashboard_has_filters(self):
        
        
        dashboard: Dashboard = Dashboard.objects.create(team=self.team, name="dashboard")
        filter_dict = {
            "events": [{"id": "$pageview"}],
            "properties": [{"key": "$browser", "value": "Mac OS X"}],
            "date_from": "-7d",
        }
        
        insight_one_id, _ = self._create_insight({"filters": filter_dict, "dashboards": [dashboard.pk]})
        insight_two_id, _ = self._create_insight({"filters": filter_dict, "dashboards": [dashboard.pk]})
        insight_one_original_filter_hash = self._get_insight(insight_one_id)["filters_hash"]
        insight_two_original_filter_hash = self._get_insight(insight_two_id)["filters_hash"]
        self.assertEqual(insight_one_original_filter_hash, insight_two_original_filter_hash)
        
        response = self.client.get(
            f"/api/projects/{self.team.id}/insights/trend/?events=%s&properties=%s&date_from=-7d"
            % (json.dumps(filter_dict["events"]), json.dumps(filter_dict["properties"]))
        )
        self.assertEqual(response.status_code, 200)
        
        patch_response = self.client.patch(