## Is your feature request related to a problem?

A user mentioned needing a feature to clone dashboards as they create the same dashboard multiple times, each for a different end-customer. Given that we are already planning on doing default / custom dashboards (#1659) we can add this functionality to facilitate dashboard creation.

## Describe the solution you'd like

Simple functionality to duplicate a dashboard.
- Add "Duplicate" button to dashboard list and clone dashboard (e.g. "Copy - AARRR").
![screenshot](https://user-images.githubusercontent.com/5864173/93866745-fce46100-fcbf-11ea-8c96-b1acfb1981d5.png)


## Describe alternatives you've considered
Re-create the dashboard manually.


## Additional context
No additional context.


#### *Thank you* for your feature request – we love each and every one!

posthog/api/dashboard.py
if dashboard_item.last_refresh and (now() - dashboard_item.last_refresh).days > 0:
            return None
        if not dashboard_item.filters_hash:
            return None
        result = get_safe_cache(dashboard_item.filters_hash)
        if not result or result.get("task_id", None):
            return None
        return result.get("result")
    def get_last_refresh(self, dashboard_item: DashboardItem):
        result = self.get_result(dashboard_item)
        if result is not None:
            return dashboard_item.last_refresh
        dashboard_item.last_refresh = None
        dashboard_item.save()
        return None
    def to_representation(self, instance):
        if self.context["request"].GET.get("refresh"):
            update_dashboard_item_cache(instance, None)
            instance.refresh_from_db()
        representation = super().to_representation(instance)
        representation["filters"] = instance.dashboard_filters(dashboard=self.context.get("dashboard"))
        return representation
    def validate_filters(self, value):
        
        if len(value) == 0 or ("from_dashboard" in value and len(value) == 1):
            capture_exception(Exception("Saving dashbord_item with blank filters"))
        return value
class DashboardItemsViewSet(StructuredViewSetMixin, viewsets.ModelViewSet):