## 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/models/insight.py
if dashboard:
            return {**self.filters, **dashboard.filters}
        else:
            return self.filters
    @property
    def effective_restriction_level(self) -> Dashboard.RestrictionLevel:
        dashboards = list(self.dashboards.all())
        if not dashboards:
            return Dashboard.RestrictionLevel.EVERYONE_IN_PROJECT_CAN_EDIT
        restrictions = [d.effective_restriction_level for d in dashboards]
        restriction_set_to_only_collaborators = next(
            (x for x in restrictions if x == Dashboard.RestrictionLevel.ONLY_COLLABORATORS_CAN_EDIT), None
        )
        if restriction_set_to_only_collaborators:
            return Dashboard.RestrictionLevel.ONLY_COLLABORATORS_CAN_EDIT
        else:
            return Dashboard.RestrictionLevel.EVERYONE_IN_PROJECT_CAN_EDIT
    def get_effective_privilege_level(self, user_id: int) -> Dashboard.PrivilegeLevel:
        if self.dashboards.count() == 0:
            return Dashboard.PrivilegeLevel.CAN_EDIT
        edit_permissions = [d.can_user_edit(user_id) for d in self.dashboards.all()]
        if any(edit_permissions):
            return Dashboard.PrivilegeLevel.CAN_EDIT
        else:
            return Dashboard.PrivilegeLevel.CAN_VIEW
class InsightViewed(models.Model):