Broadcast EventLeaderElection on all term or leader changes.
Return a channel from MultiRaft.{SubmitCommand,ChangeGroupMembership}.

This channel can be used to wait for the proposed action to be
committed.

Adding this wait to TestMembershipChange demonstrated that the test
wasn't actually doing much. Some of the issues have been fixed
but the test is disabled until we make some decisions about the
group membership protocol.
s/SendMessage/RaftMessage/g

This avoids confusion caused by the fact that the same method name
is used for both the sending and receiving side of the message.
GC stats to compute likely GC'able bytes from elapsed time.

A GCMetadata record will be written after every GC scan of a range. That,
combined with the current non-live bytes count and current time can be
used to estimate the expected count of GC'able bytes.

This will allow us to avoid constantly scanning ranges which have had no
churn, while using the range stats as well as a detailed picture of the
aging bytes on last GC scan to prioritize ranges for GC.
README.md: Update to remove RocksDB confusion.

Previously we asked that people install the reqs for RocksDB, but that caused linking issues with bootstrap.sh. Removing that instruction for now.
Log instead of panicking when ProposeRaftCommand called after shutdown.

When a test that uses goroutines fails, these goroutines may continue
to try to use the store after it is shut down. The panic occurs during a
subsequent test function and obscures the true cause of the failure.

This problem appears to occur most often with TestRangeIdempotence,
so I've increased its timeout.

Fixes #222.
Merge pull request #223 from bdarnell/fix-panic

Log instead of panicking when ProposeRaftCommand called after shutdown.
Respond to Tobias' feedback
Add basic KV REST html UI and embedfile tool

This change adds a basic UI for querying the REST API from a web GUI at /kv/rest/.
It avoids the external dependency of another file (rest_ui.html) by generating a
file through the go generate command and the embedfile tool before compilation.

This is all a preamble to a better REST API, but also autogenerated documentation
using embedfile and go generate.
more appropriate naming
use local checkout path for embedfile
better error in the case where init is called on an existing db
use go install instead of go get
decode key
fix test for now
Merge pull request #225 from cockroachdb/andybons/bettererror

better error in the case where init is called on an existing db
Add commit to multiraft.group.pending.
Merge remote-tracking branch 'origin/master' into commit-notification

* origin/master:
  Log instead of panicking when ProposeRaftCommand called after shutdown.
  README.md: Update to remove RocksDB confusion.
  Address feedback
  Address feedback, add unittest, fixed bug in Store.RemoveRange
  Update scanner.go
  Implementation of rangeIterator for store.
  adjust scanner timing test to be more permissive
  Add new baseQueue and underlying priority queue code and tests.
  fix test, added more debugging log statements
  Rename makeRangeKey to engine.RangeDescriptorKey for clarity
  move scan interval to a default value and command line flag in store.go
  Addressed Ben's feedback; added an empty iteration unittest. Also fixed data race in the unittest.
  Range scanner which iterates over ranges and adds them to queues.
  Update README.md
  Minor client documentation updates.
  Further simplified logic in updateRangeAddressing
  Add support for merging range addressing records.
Merge pull request #219 from cockroachdb/spencerkimball/gc-pass-and-stats

GC stats to compute likely GC'able bytes from elapsed time.
Merge pull request #215 from bdarnell/commit-notification

Return a channel from MultiRaft.{SubmitCommand,ChangeGroupMembership}