## 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
self.assertEqual(response.status_code, 200)
            response_data = response.json()
            self.assertIsNotNone(response_data["items"][0]["result"])
            self.assertIsNotNone(response_data["items"][0]["last_refresh"])
            self.assertEqual(response_data["items"][0]["result"][0]["count"], 0)
            item_default.refresh_from_db()
            item_sessions.refresh_from_db()
            self.assertEqual(parser.isoparse(response_data["items"][0]["last_refresh"]), item_default.last_refresh)
            self.assertEqual(parser.isoparse(response_data["items"][1]["last_refresh"]), item_sessions.last_refresh)
            self.assertAlmostEqual(item_default.last_refresh, now(), delta=timezone.timedelta(seconds=5))
            self.assertAlmostEqual(item_sessions.last_refresh, now(), delta=timezone.timedelta(seconds=5))
    def test_dashboard_endpoints(self):
        
        response = self.client.post("/api/dashboard/", {"name": "Default", "pinned": "true"},)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(response.json()["name"], "Default")
        self.assertEqual(response.json()["creation_mode"], "default")
        self.assertEqual(response.json()["pinned"], True)
        
        response = self.client.get("/api/dashboard/").json()
        pk = Dashboard.objects.first().pk  
        self.assertEqual(response["results"][0]["id"], pk)  
        self.assertEqual(response["results"][0]["name"], "Default")  
        
        self.client.patch(
            f"/api/dashboard/{pk}/", {"deleted": "true"},
        )
        response = self.client.get("/api/dashboard/").json()
        self.assertEqual(len(response["results"]), 0)
    def test_dashboard_items(self):