Customizable ft/partitioning parameters at space creation time
Add range searches to the Python bindings
Fix leveldb-dump output
Don't send CHAIN_GC after reconfigure; wait 30s instead
Fix the limits of range searches

INT64_MIN, INT64_MAX caused problems.  As a side effect, we have range searches
on strings (will contact all nodes).
Harden the shutdown of a single daemon.

LevelDB requires that a database outlive its snapshots, which in turn must
outlive their iterators.  This change enforces this across the code by keeping
our own reference counts to ensure that no matter what order we shutdown, we do
shutdown cleanly.  A segfault leaves LevelDB in a less-nice place than a clean
shutdown, making future startup hard.
Use fprintf for logging in line with replicant changes
Add a unique cluster id to prevent cross-cluster connections
Make ^C responsive when daemon is sleeping

If the coordinator connection fails, we must back off.  This involves a sleep.
If a ^C comes in when sleeping, then we must handle it (near) immediately.
Add a tool to initialize replicant (including the token)
Increase the log verbosity of the coordinator

Log actions like adding/removing spaces, and why things fail
Ack configs to the coordinator.
Two-phase shutdown of a single node.

On ^C, a server does the following:

1.  Inform the coordinator that it is shutting down.
2.  Wait for all nodes to adopt the latest configuration.
3.  Inform the coordinator that it exiting

At the end of this, the coordinator has been given an opportunity to
disseminate a new config to everyone before the single node exits.
Maintain the layout as servers fail and join.

Each time a server is failed or joins the cluster, the configuraton is updated
to maximize the fault tolerance of each region.

ASSUMES: - There is always at least one server in each region.
         - Servers come back on alternate IPs.