Added support for Protobuf codec and moved RPC system to it.

The support is a modified version of the protorpc package at:
http://godoc.org/code.google.com/p/protorpc.

Our version is modified to support gogoprotobuf. Eventually we'd
like to remove the rpc/codec subpackage and use gogoprotobuf's
implementation. I've started a thread with them for support.
Added tests and updated TODO.md
update godeps with snappy
Added generated .pb.go files
Mergeable Time Series Data

This commit defines a new "TimeSeriesData" message which is used to record time
series data in an efficient way.  It also defines a custom "merge" operation for
TimeSeriesData within our existing RocksDB MergeOperator.

Background:
A "Time Series" is a set of data samples taken from the same statistic at
different points in time - for example, a common use of Time Series is the
recording of metrics for an application. Because of specialized query
requirements and necessarily high write performance, many specialized Database
solutions have been created specifically to handle Time Series data.

In Cockroach, multiple samples of a single statistic will be stored at a single
key; a key will contain all samples taken from a metric during over a well
defined time period such as a wall-clock hour. Based on our research into other
TS database solutions, this grouping is very effective in improving read
performance.

High write performance is enabled by creating a custom Merge operation for Time
Series data.  Whenever metric data samples are written, a Merge operation is
utilized instead of a put; for example, a single metric source will merge
samples into the same key at several points over the course of an hour.  The
resulting "merged" value will appear as if all samples had been written together
as a single value.
fix race in rpc heartbeat test
Merge pull request #164 from cockroachdb/mtracy/add_time_series

Mergeable Time Series Data
Merge pull request #165 from cockroachdb/spencerkimball/proto-codec

Added support for Protobuf codec and moved RPC system to it.
Always start/stop Range background goroutines via the Store.

Rename Store.Init and Close to Start and Stop to match other
methods that manage background goroutines.

This change ensures that we are always calling Store.Start
(and hopefully always calling Store.Stop, although I haven't
verified that we have 100% coverage), in preparation for
adding a new Store-level background goroutine.
Merge pull request #167 from bdarnell/store-start-stop

Always start/stop Range background goroutines via the Store.
Merge remote-tracking branch 'cockroachdb/master' into staticbinary