Fix a bug where registration failed spuriously

It'd fail because we'd just check whether there is a lower_bound of the
requested ID and not whether the lower_bound matched the ID.
Add a tool to kill particular servers

Specify a server ID and it's removed from the config.
Check for self-assignment in operator = configuration
Remove an assertion in configuration::refill_cache

We asserted the replica set was non-empty.  Now we just don't add
replica-centric entries to the cache.
Remove the XXX in the "setup" part of datalayer
Add pack/upack/pack_size for po6::net::hostname
Use blocking/push-based config retrieval

The coordinator pushes new configurations to the servers.  Clients still
poll.  Caveat:  Right now ^C doesn't work because it's swallowed by
BusyBee.
Log messages after filling in the header
Add a "send_exact" communication method.

The sender and receiver must be on the exact same configuration version
for the message to be delivered.  If the receiver has moved on to a
newer config, the message will not be delivered.
Remove the "deferred" struct from replication manager.

It was a strict subset of the "pending" struct and all we did was copy it into a
pending struct.
Track config versions on replication messages.
Cleanup commit code in replication layer.
Use "send_exact" for CHAIN_{PUT,DEL,ACK}.
Fixup the "RECV" line for communication logging.
Use push notifications in the client library

The client library subscribes to a replicant condition rather than polling on each operation.
Simplify replication logic.

Everything is presented as moving operations between queues.
Add add-space/rm-space to Python bindings
Fix duplicate detection in the coordinator.
Fix response generation for rm-space
Add server/sequence ids to every message