Prevent claimant from shutting down nodes too soon

Prior to this change, the claimant transfered nodes to the invalid state
after they completed handoff and sent them a shutdown message. These
nodes, however,  often shutdown before the root ensemble membership was
changed. This resulted in the root ensemble becoming stuck because it
couldn't talk to the those nodes anymore. This change makes it so that
we wait for the removal of those members in the root ensemble on the
given nodes before putting them in the invalid state in the claimant.

Making the change above, leaves nodes in the exiting state without
shutting them down. In that case the following line returns the
exited nodes as available members in the cluster still and prevents them
from being removed from the root ensemble.

https://github.com/basho/riak_core/blob/develop/src/riak_core_claimant.erl#L766

Changing that line to: `Members = riak_core_ring:ready_members(Ring),`
causes these exited nodes to be seen as removed by the claimant,  and
update the members of the root ensemble so that the claimant can finally
transition to the invalid state and the removed nodes can be shut down.
Ensure ensemble cluster state is updated when nodes are removed
Add ready_to_exit check to ensure_vnodes_started

Ensure all vnode modules that implement the ready_to_exit/0 callback
return true before transitioning vnodes from leaving to exiting state.
Make minor code indentation changes
Update dialyzer.ignored-warnings
Merge pull request #578 from basho/ajs/ensemble_remove_node

Ensure ensembles reconfigure before nodes exit

Reviewed-by: andrewjstone