Count draining nodes as unavailable
Count draining nodes as unavailable

To ensure we update only as many nodes in parallel as configured a running
count of unavailable nodes is kept. Previously only nodes with out of sync
plans would be treated as unavailable.  We now also check that the node
is in a drain state and treat it as unavailable so that we don't drain
more nodes in parallel than configured.

Additionally when considering the concurrency of updates of the init node
we were not looking at all etcd nodes.  This meant that if one etcd node
was being updated and that node was not the init node, and then you make
another provisioning change, we would update the init node before the other
etcd node finished provisioning.  This could violate the configured
concurrency.

rancher/rancher,rancher/rancher,rancher/rancher,rancher/rancher