## 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/test/test_dashboard.py
item = DashboardItem.objects.create(dashboard=dashboard, filters=filter_dict, team=self.team,)
        DashboardItem.objects.create(
            dashboard=dashboard, filters=filter.to_dict(), team=self.team,
        )
        self.client.get(
            "/api/insight/trend/?events=%s&properties=%s&date_from=-7d"
            % (json.dumps(filter_dict["events"]), json.dumps(filter_dict["properties"]))
        )
        patch_response = self.client.patch(
            "/api/dashboard/%s/" % dashboard.pk, {"filters": {"date_from": "-24h"}}, format="json",
        ).json()
        self.assertEqual(patch_response["items"][0]["result"], None)
        
        response = self.client.get(
            "/api/insight/trend/?events=%s&properties=%s&date_from=-24h"
            % (json.dumps(filter_dict["events"]), json.dumps(filter_dict["properties"]))
        )
        self.assertEqual(response.status_code, 200)
        item = DashboardItem.objects.get(pk=item.pk)
        
        response = self.client.get("/api/dashboard/%s/" % dashboard.pk).json()
        self.assertEqual(len(response["items"][0]["result"][0]["days"]), 2)  
    def test_invalid_properties(self):
        properties = "invalid_json"
        response = self.client.get(f"/api/insight/trend/?properties={properties}")
        self.assertEqual(response.status_code, 400)
        self.assertDictEqual(
            response.json(), self.validation_error_response("Properties are unparsable!", "invalid_input")
        )