Code for handling cockroach's "key prefix" addressing scheme, used for accounting, permissions, and zone configurations. Uses:

Summary:
 - query configs based on a key. For example, to determine
   which permissions ACL a Put() RPC should lookup.

 - query all matching configs based on a key. This is useful when
   propagating accounting statistics. You want # of bytes written
   to propagate to the table accounting (say /db1/user), to the
   database accounting (/db1), and to the full cockroach cluster
   accounting (/).

 - split ranges based on existing configured prefixes. This is
   necessary when zones are configured which may not agree with
   existing cockroach range splits. For example, consider a range
   from key "/db1/order/32" -> "/db1/user/15", spanning the
   "order" and "user" tables in "db1". In this case, if a zone
   config is added for just the user table "/db1/user", changing
   replication factor or moving to all SSD, the underlying ranges
   need to be split along the "/db1/user/" boundary.

Test Plan: go test

Reviewers: bdarnell, andybons

Reviewed By: andybons

Differential Revision: http://phabricator.andybons.com/D42