[backend][frontend] queue redo
Backend now specifies what job (arch/owner) it prefers or rather...
what it does not prefer (=cannot allocate resources for at the moment).
Previous job deferring mechanism was returned back as fallback because
even with the job criteria sent to frontend, it might happen that frontend
will pick a job that backend has no resources for (e.g. all builders in group
READY but dirty and frontend will pick job of an owner that does not have a VM
assigned in the group). In that case, deferring might be useful to prevent
queue jamming.
The original backend/waiting interface was split into /backend/select-action
and /backend/select-build-task.
Frontend job filtering logic is done in python, which should be ok considering
that pending/importing jobs are not that many at any point.
- includes bugfix in acquire_vm for checking user limits on VMs
- includes bugfix in can_user_acquire_more_vm for arch=None builds
- includes bugfix for terminating IN_USE machines with failed health checks