First, some small updates to README.md and addition of .png and .pdf files to resources subdirectory.

Summary:
The bulk of this change is adding permission checking to the kv/
distributed DB and enhancing the kv/ local DB to own multiple stores
and to have the ability to lookup replicas based on keys. This is
a precursor step to allowing a shortcut directly to the local DB for
cases where the operations are being run on the physical node which
owns the leader of the range replicas. This is going to happen on
small databases frequently, and also on more macroscopic operations
done via the structured data API (e.g. an update which causes a full
text index and secondary indexes to update, resulting in 50+ reads
and writes). Not going through the network stack for each read/write
will be important for performance.

The prefixConfigMap has been simplified to contain only a single array
of prefixConfig objects. This makes it possible to gossip the structure.
Previously, the canonical mapping would end up with a gob encoding which
ruined it. Also implemented a visitor pattern when splitting ranges by
the prefix map so that fewer Go objects are created. We have to use this
for every permission check, so it needs to be efficient.

Added a mapping for writing and reading operations and split out
ConditionalPut, as it can both read and write, whereas Put only writes.
This is important as I believe we will end up having tables which are
write-only.

Simplified how "commands" (e.g. operations) are passed through from
localDB to store or from node to store, and from store to range. The
changes here are all in preparation of combining distributed transactions
and raft. Follow on changes will build there.

Test Plan: go test

Reviewers: bdarnell, andybons, Tobias

Reviewed By: andybons

Subscribers: team

Differential Revision: http://phabricator.cockroachdb.org/D87