Many items in this changelist. It started with just an intention to add one unittest: to allow a node to join a cluster. This led down the rabbit hole.

Summary:
- Fixed and improved the non-operational 2-level addressing scheme for
  map keys from kv/db.go.

- Added an RPC routing mechanism which handles sending RPCs to multiple
  replicas and finishing when a preset number of successful replies is
  received. This is general purpose and can be used by raft.

- Added default configs for accounting, permissions and zones to the
  bootstrap cluster code and removed the default zone config we used to
  supply on "cockroach init" command.

- Played some musical chairs with passing addresses around to avoid
  problems with baking in an address with port ":0" before the associated
  listener has a chance to pick and unused port.

- Changed server/server.go to derive host from os.Hostname if not supplied
  on command line. Set default for -http_addr to ":8080" and -rpc_addr to
  ":0". -rpc_addr is really only used internally in the cluster and is
  gossipped, so not much point in making the port well-known.

- Don't store yaml for config; store gob-encoded instead.

Test Plan:
go test, though more unittests for much of this code will
need to be added. Further, the rocksdb unittest is currently failing
but wanted to get a review out tonight and it's already 4:15.

Reviewers: andybons, Tobias

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