Add breadth-first AAE exchange

This commit ports the breath-first exchange algorithm from the synctree code in riak_ensemble to the hashtree code here in riak_core. This level-by-level exchange is necessary to support streaming and/or pipelined AAE exchange -- an approach that underpins the new AAE-based fullsync replication protocol in Riak Enterprise.

Sibling pull-requests: basho/riak_kv#1023, basho/riak_repl#616
I just meant there was an unnecessary variable being set, it looks like the ```exchange_level/6``` usage strips the difference on L842 and knows that it needs to recurse to the next level if there are any differences.