Make AAE hashtree updates synchronous to add backpressure
Close AAE iterators before closing AAE backends
Update AAE hashtrees to expect new LevelDB error handling

Recent eleveldb work changes how eleveldb responds when iterator_move
is passed an invalid or closed iterator. Previously, the error tuple
'{error, invalid_iterator}' would be returned. Now, a badarg exception
is thrown. This commit updates how AAE calls iterator_move based on
this change.
Fix AAE to not attempt to repair non-divergent keys over and over

When AAE exchange determines keys are divergent, AAE triggers read
repair to repair divergent keys. This repairs the divergent replicas
as well as updates the respective AAE trees. However, if an AAE tree
is divergent from the underlying KV data, it it is possible that AAE
will try to repair keys that do not have divergent KV replicas. In
that case, read repair is never triggered, and therefore the AAE trees
are never updated. In this case, AAE attempts to repair the same
non-divergent keys over and over.

This commit changes AAE such that any key repair also triggers an
update of the respective AAE trees, regardless of if read repair was
triggered or not. As such, repair for non-divergent keys will be
triggered at most once.
Revert to using quorum reads for AAE read repair

The commit that fixed AAE from repairing non-divergent keys over and
over also changed the AAE triggered reads to use R=all. The intention
was to ensure that any potential read repair was triggered before
triggering an update of the respective AAE trees.  However, this is
not necessary. If a rehash happens before the read repair, the newer
repaired hash will be written during the vnode put. This commit
reverts back to using quorum reads, reducing the impact of slow
replicas on AAE repair.
Minor changes to riak_kv_index_hashtree based on code review

Remove now-dead handle_cast clauses for insert, insert_object, and
delete in riak_kv_index_hashtree that were moved to handle_call in
order to introduce backpressure.

Make explicit the requirement that the IndexNs parameter passed to
start/3 and start_link/3 must be a non-empty list. Various code in
riak_kv_index_hashtree is written assuming this condition.
Merge pull request #472 from basho/jdb-aae-fixes-rb
Merge pull request #473 from basho/jdb-aae-infinite-repair
Update AAE eunit tests to new hashtree API semantics
Fix AAE rehash to work when data is missing
Merge branch 'master' into 1.3
Merge pull request #474 from basho/jdb-aae-rehash-missing
Merge branch 'master' into 1.3