## 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
dashboard = Dashboard.objects.create(name="Default", pinned=True, team=self.team, filters={"date_from": "-14d"})
        self.client.post(
            "/api/dashboard_item/",
            {"filters": {"hello": "test", "date_from": "-7d"}, "dashboard": dashboard.pk, "name": "some_item"},
            format="json",
        )
        response = self.client.get("/api/dashboard/{}/".format(dashboard.pk)).json()
        self.assertEqual(len(response["items"]), 1)
        self.assertEqual(response["items"][0]["name"], "some_item")
        self.assertEqual(response["items"][0]["filters"]["date_from"], "-14d")
        item_response = self.client.get("/api/dashboard_item/").json()
        self.assertEqual(item_response["results"][0]["name"], "some_item")
        
        self.client.patch("/api/dashboard_item/{}/".format(item_response["results"][0]["id"]), {"deleted": "true"})
        items_response = self.client.get("/api/dashboard_item/").json()
        self.assertEqual(len(items_response["results"]), 0)
    def test_dashboard_items_history_per_user(self):
        test_user = User.objects.create_and_join(self.organization, "test@test.com", None)
        DashboardItem.objects.create(filters={"hello": "test"}, team=self.team, created_by=test_user)
        
        self.client.post("/api/dashboard_item", {"filters": {"hello": "test"}}, format="json").json()
        response = self.client.get("/api/dashboard_item/?user=true").json()
        self.assertEqual(response["count"], 1)
    def test_dashboard_items_history_saved(self):
        self.client.post("/api/dashboard_item/", {"filters": {"hello": "test"}, "saved": True}, format="json").json()
        self.client.post("/api/dashboard_item/", {"filters": {"hello": "test"}}, format="json").json()
        response = self.client.get("/api/dashboard_item/?user=true&saved=true").json()
        self.assertEqual(response["count"], 1)
    def test_dashboard_item_layout(self):