Pass all objects to Yokozuna as they are written/modified

If `TEST` is set then define as noop to avoid breaking unit tests.
Yokozuna is a runtime dependency not a compile/test time dependency.
(cherry picked from commit 606ed397a200f3c7526805d2d74bca339b761ecb)
Add function to get partition index from vnode state
(cherry picked from commit cf4ed34720a4a7db3ce0ecb7413f7bd353316571)

Conflicts:
	src/riak_kv_vnode.erl
Add type to entropy info

Adding a type namespace to entropy info allows me to reuse it for
Yokozuna AAE status as well as future uses of AAE.
(cherry picked from commit 71c9602f844c80f619e43ae92f26503ea5889287)
Export get_build_time

This function can be reused by Yokozuna.
(cherry picked from commit 36055c3ad9ca499305cb0a6103988f1900e4da1e)
Parametrize mod:fun to determine all exchanges

The exchanges that need to take place in Yokozuna are not the same as
those in KV.
(cherry picked from commit c8e19d83eb09d3fb16e746322b574ddeb2dcfc8d)