Bug 1087520 - Leaderboard for One and Done

Here is another idea to avoid using custom sql:

```
TaskAttempt.objects.filter(modified__gt=F('created') + timedelta(seconds=settings.MIN_DURATION_FOR_COMPLETED_ATTEMPTS))
```
will get you all "valid completed attempts"

You can append `values_list('user__id', flat=True)` to get all user ids with valid tasks and then you can

`User.objects.filter(pk__in=ids).distinct()`

I still need to solve the ordering issue but my point is to introduce [`F()`](https://docs.djangoproject.com/en/dev/ref/models/expressions/#django.db.models.F) and try to avoid custom sql.