Hash Trees for use in Cluster Metadata

hashtree_tree implements a data structure for efficiently determining
the differences between keys in two different stores. Unlike hashtree,
which this module is based on, keys can be logically grouped such that
differences found include missing groups as well as which groups the
differing or missing keys belong to.

This commit copies hashtree.erl from riak_kv (it will be removed in
that repo). In addition, it adds a (temporary) dependency on eleveldb,
which is used by hashtree.erl. hashtree_tree is intended to be used
ephermerally (although there is no reason it cannot be persistent) but
hashtree must first be extended to have pluggable backends.