Add an exhaustive test for AAE based replication.

Ensure that AAE replication is tested using all possible failure cases
when dealing with the riak_kv_index_hashtrees and failed connections.

First, use intercepts on riak_kv_vnode and riak_kv_index_hashtree to
ensure that we simulate errors on a per node basis, starting with the
source cluster and moving to the sink.  Simulate ownership transfers,
locked and incomplete hashtrees.  Verify partitions generate the correct
error count, after using a bounded set of retries, and finally remove
all intercepts and verify that the fullsync completes and all keys have
been migrated between the two clusters.
Update test to default te max_fssource_retries value.
Improve tests.

Improve test infrastructure by extracing out common code into functions
that can be used to build out further test cases.

Label our existing unidirectional test as a "simple" test, and begin
building out a more exhaustive test case.

The exhaustive test case is not complete and currently a *work in
progress*. However, it currently configures three clusters and sets up
replication from one source to two sinks.  This is as far as the test
gets because this currently *fails* in setting up the initial
connections to the two clusters causing fullsync to completely abort.

It appears, but it unconfirmed, that a crash is causing cluster_conn to
fail and lose information about how to connect to the clusters
documented due to async storage of the remote cluster information to the
ring.  (I believe this to be the issue as this bug was discovered by
Kelly and I during debugging of another repl related race condition
during startup.)  Removing the second cluster connection call, and
letting it proceed with a connection to only one cluster allows the test
to proceed.
Fix several bugs in the test refactor, and adjust some assumptions
Change test name.
Add bidirectional test.
Add clean.
Reorder tree building code.
Wait for transfers to prevent race in tree ownership.
Fix typo.
Ensure we call bidirectional test.
Run bidirectional first because it cleans post-run.
Address key offset confusion.
Merge pull request #498 from basho/feature/csm/aae-repl-develop

Port of replication test for AAE full sync to master.