refactor streak calculation to happen in a worker

For now it happens just after runs are posted, it could/should also be
done when runs are deleted