Fix release from #1860 (hotfix #1934).

- Cron job to send weekly email report is processed multiple times. Review scheduling process to send to only one worker.
- Implement mechanism to ensure each email is sent only once to each recipient.
- Improve the way the async task is processed by creating a separate task for each organization, instead of processing all organizations in a single task.
posthog/test/test_email.py
with self.settings(
            EMAIL_HOST="localhost", SITE_URL="http://localhost:9999",
        ):
            send_weekly_email_report()
        self.assertSetEqual(
            {",".join(outmail.to) for outmail in mail.outbox}, {"test@posthog.com", "test2@posthog.com"}
        )
        self.assertEqual(
            mail.outbox[0].subject, "PostHog weekly report for Sep 14, 2020 to Sep 20",
        )
        self.assertEqual(
            mail.outbox[0].body, "",
        )  
        html_message = mail.outbox[0].alternatives[0][0]  
        self.assertIn(
            "http://localhost:9999/static/posthog-logo.png", html_message,
        )  
        self.assertIn('style="font-weight: 300"', html_message)  
        self.assertIn(
            "Your PostHog weekly report is ready! Your team had 6 active users last week! &#127881;", html_message,
        )  
    @patch("posthog.tasks.email.EmailMessage")
    @freeze_time("2020-09-21")
    def test_weekly_email_report_content(self, mock_email_message):
        with self.settings(EMAIL_HOST="localhost"):
            send_weekly_email_report()
        self.assertEqual(