## 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
filter_dict = {
            "events": [{"id": "$pageview"}],
            "properties": [{"key": "$browser", "value": "Mac OS X"}],
        }
        dashboard_id, _ = self._create_dashboard({"name": "the dashboard"})
        blue_insight_id, _ = self._create_insight(
            {"filters": filter_dict, "name": "blue insight", "dashboards": [dashboard_id]}
        )
        response = self.client.patch(
            f"/api/projects/{self.team.id}/dashboards/{dashboard_id}",
            {"colors": [{"id": blue_insight_id, "color": "blue"}]},
        )
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        blue_insight_in_isolation = self._get_insight(blue_insight_id)
        self.assertEqual(blue_insight_in_isolation["name"], "blue insight")
        self.assertEqual(blue_insight_in_isolation.get("color", None), None)
        blue_insight_on_dashboard = self._get_insight(blue_insight_id, query_params={"from_dashboard": dashboard_id})
        self.assertEqual(blue_insight_on_dashboard["name"], "blue insight")
        self.assertEqual(blue_insight_on_dashboard.get("color", None), "blue")
    def test_get_insight_by_short_id(self):