Change the node N+1 check model
Currently, we fail a new instance placement if the new node status is not N+1 compliant. This means that an allocation on an already N+1 failed node still fails, even though (conceptually) we're not worse than before. This patch changes this model to fail the allocation *only* if the node was N+1 compliant before. This allows balancing to work on non-N+1 happy clusters, with the caveat that they probably won't be N+1 happy at the end. Since we skip N+1 check in some cases, we add a new “failHealth” check that verifies the node still has strict positive free memory and disk space.