Celery: use `on_retry` to handle `BuildMaxConcurrencyError`
Instead of handling the retry of a task manually when the project hits max
concurrency error, we rely on Celey handlers to do it for us.
By raising the any of the exceptions defined in `autoretry_for`, Celery will
call `on_retry` automatically. There, inside `on_retry` we handle the particular
case for `BuildMaxConcurrencyError` by setting the error into the build object
and skipping the test to continue running.
See
https://docs.celeryproject.org/en/master/userguide/tasks.html#automatic-retry-for-known-exceptions
and https://docs.celeryproject.org/en/master/userguide/tasks.html#Task.autoretry_for