Modify UniqueId to fetch names and suggestions asynchronously.
Add MockBase.java, a mock implementation of HBase used for unit testing.
It uses nested hash tables to store keys as hex encoding strings with
byte arrays as the value. It does not currently support timestamps or
multiple versions. The asyncbase client is mocked with the following:
GetRequest
DeleteRequest
PutRequest
CompareAndSet
Scanner (limited to row regex and always returns the entire result in
  the first call)
AtomicIncrementRequest
Modify all storage calls in TSMeta and UIDMeta to be asynchronous along with
all unit tests and callers
Update TSDB.getUidName() to use the asynchronous name call
Modify UniqueIdRpc to access TSMeta and UIDMeta asynchronously, though the RPCs
could still be asynced when responding to the client.
Add tree building classes including:
Branch - A list of leaves and child branches in a tree
Leaf - Represents a single timeseries in the tree
Tree - Container with meta data for trees
TreeBuilder - Logic for compiling a tree from TSMeta objects
TreeRule - A single rule in the tree definition, determines how timeseries
are organized in the tree
Add TreeRuleTypeDeserializer JSON helper class for deserializing rule type
strings