Add callback annotations to riak_core_vnode
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.
change bucket_fixup_test:fixup_test_/0 to wait for ring manager death

riak_core_ring_manager:stop/0 is async and races w/ the start of load_test_/0. see #590
Merge pull request #543 from basho/feature/sdc/vnode-callbacks

Add callback annotations to riak_core_vnode

Reviewed-by: kellymclaughlin
Make safe_rpc catch exit correctly.

- change 'EXIT':{noproc, ...} to exit:{noproc, ...}
disable bg manager globally
update riak_core_schema_tests for bg manager being disabled by default
attempt to isolate hashtree tests more by using a reference in the pathname
Merge pull request #598 from basho/bugfix/jra/rex

Make riak_core_util:safe_rpc catch exit correctly
Merge pull request #599 from basho/features/jrw/disable-bg-mgr

disable bg manager globally
Merge pull request #600 from basho/bugfix/jrw/593

attempt to isolate hashtree tests more by using a reference

Reviewed-by: reiddraper
Merge pull request #592 from basho/bugfix/jrw/590-bucket-fixup-test-cleanup

change bucket_fixup_test:fixup_test_/0 to wait for ring manager death

Reviewed-by: reiddraper
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