Eliminate races in Conductor _check_deploy_timeouts

Re-check filters after we grab a lock in case things changed.

Tests are also re-factored to not use the DB. Tests are added for all
of these missing test cases.

Also: 'maintenance' was dropped from the filters in this review:

I646540e334dec05682640c05cedb315e0ee355bc

I don't see any explanation of why it was removed in that patch.

It seems reasonable that someone could set maintenance on a node that
is stuck in DEPLOYWAIT. And we would not want to touch it while it is
in maintenance. So, this patch re-adds it to the filters and makes
sure to re-check it after having a lock.

Also: When this was being reviewed, it was caught that
NoFreeConductorWorker should actually just completely exit the periodic
task. That change is included here too while re-factoring this.

Closes-Bug: 1332860

Change-Id: I9e73ca4a1d90bd92bdf83821dae72a30f7b885a9
Merge "Eliminate races in Conductor _check_deploy_timeouts"