Fix peer/supervisor shutdown bug, quorum_timeout bug
Numerous changes/fixes

Fix bug in riak_ensemble_peer where quorum_timeout messages were
being ignored, rather than being passed on to riak_ensemble_msg
for translation into {timeout, Replies} messages that the peer
was expecting.

Add sync_request/sync behavior to ensemble backends and implement
for riak_ensemble_basic_backend. Adding syncing has been a long
standing feature addition, but turns out is necessary for the
root ensemble case in order to guarantee empty root peers learn
root state before potentially taking over. Newly started peers
are untrusted, and only become trusted after syncing with a majority
of peers across all current views.

Change how riak_ensemble_peer to delay transitioning views until
after the larger joint membership is following the leader, this
ensures that at least a majority of newly added peers became trusted
before the transition.

Fix bug related to handling view_seq for check_ensemble. The view_seq
is now set to the fact epoch/seq at which the new view was created,
as well as incremented when a new epoch is established. This ties
view consistency to fact consistency.

Add delay between a probe timeout and retrying to probe.