Fix AAE repair, hash object once

Given the right conditions Yokozuna's AAE can enter a state where some
keys are indefinitely repaired.  I.e. the same keys get repaired over
and over.  This turned out to be many things coming together to cause
the bug.

* Use a ring of 16 and 3 nodes, causing node repetition in some
  preflists.

* Two RPC calls, in the repair function, to same node using same
  process.

* The use of the key `tree` for caching the hashtree pid in the
  process dictionary.

Below is a copy of redbug output showing that `yz_kv:get_tree` was
returning the same Pid for two difference partitions.  Ultimately what
this all means is that the hashtree updates were going to the wrong
hashtree and thus AAE kept repairing them.

```
03:51:18 <{erlang,apply,2}> {yz_kv,get_tree,[0]}
03:51:18 <{erlang,apply,2}> {yz_kv,get_tree,1} -> <0.1142.0>
03:51:18 <{erlang,apply,2}> {yz_kv,get_tree,
                                   [1370157784997721485815954530671515330927436759040]}
03:51:18 <{erlang,apply,2}> {yz_kv,get_tree,1} -> <0.1142.0>
```

This commit fixes that by using `{tree,Partition}` as the key for
uniqueness.

I also change the repair function to perform a local get and re-index
rather than cross node boundaries.  This means cheaper repair and no
RPC calls.

Finally, I made a change to where the object hash is calculated to
avoid performing the computation twice.