Use maxLaunchDelay to determine what delays to GC.
In addition to that, on conditions like Running, Created, existing delays are
advanced to make sure that delays are applied to failures, and time taken by
provisioning containers doesn't get subtracted from them.
In the future we might implement removal of rate-limiting delays when
a corresponding RunSpec becomes healthy.
This is a back-port from master branch.