[#59927158] Rewrite fitbit subscription functionality

- Don't use django-celery
- Handle the new fitbit notification format
- Use the new rate limit exception "retry_after_secs" attribute to retry tasks when appropriate
- Use a cache key "lock" to prevent duplicate tasks and reduce chance of hitting the rate limit
- Various bug fixes