Add logic to automatically enable consensus system

Currently, in addition to enabling consensus in app.config, a user must also manually call `riak_ensemble_manager:enable()` from one and only one node in a cluster to activate the consensus sub-system. This is necessary to ensure that there is only a single logical root ensemble history -- all other nodes adopt the history from the single enabled node.

However, this step is not only annoying but also error-prone. Enabling consensus on multiple nodes can break the consensus system, requiring manual intervention.

This commit addresses this problem by making riak_core automatically enable the consensus system in a safe way. This is accomplished by having the claimant node enable the consensus system. To avoid the issue where the claimant in multiple 1-node clusters enables consensus before being joined, this commit requires the cluster to have at least three nodes before the claimant will enable the consensus system.

To prevent a race during claimant changes, a claimant must first write a special ring metadata value that prevents future claimants from activating the consensus system. It is not until after the ring has converged cluster wide, and the claimant sees the appropriate metadata value, that the claimant activates the consensus system.

Resolves #571

Sibling pull-request: basho/riak_test#632

For testing purposes, the existing `riak_ensemble` tests from `riak_test` work well -- just make sure to use the sibling `riak_test` pull-request above.

Sorta. `riak_core_sup:ensembles_enabled()` has an `app.config` check, and we currently ship w/ consensus subsystem disabled. Assumption was folks would manually change the setting after upgrading all nodes. But, I was just thinking about a capability the other day. We probably should add one before 2.0 final. But, that'll be in a later pull-request.