Probably good to keep the `request_hashtree_pid` API encapuslated in `riak_kv_vnode.erl`. We already have a precedent with `get/3, put/6, etc` of providing a `Sender` in the API call. Perhaps add a `request_hashtree_pid/2` that has a `Sender` argument.

```erlang
%% In riak_kv_vnode.erl
request_hashtree_pid(Partition) ->
    ReqId = {hashtree_pid, Partition},
    Sender = {raw, ReqId, self()},
    request_hashtree_pid(Partition, Sender).

request_hashtree_pid(Partition, Sender) ->
    riak_core_vnode_master:command({Partition, node()},
                                   {hashtree_pid, node()},
                                   Sender,
                                   riak_kv_vnode_master).

%% In riak_kv_2i_aae.erl
next_partition(timeout, State=#state{remaining=[Partition|_]}) ->
    ReqId = make_ref(),
    riak_kv_vnode:request_hashtree_pid(Partition, {fsm, ReqId, self()}),
    ...
```