Add cluster interfaces, refactor cluster config and server into cluster package.

* fix backfill of continuous queries to actually work
Fix coordinator test so raft server and cluster config use same configuration object.
Remove extraneous fmt.printf and add some loggigng
Update Shard Query interface. Add getting shard by series and time
Add initial parts of the sharded leveldb store. Stub out shard management in raft server. Update server to work with new cluster configuration.
Make block size 64k
WIP: refactor so coordinator.RunQuery is the single entry point for running queries.

Coordinator will have the responsibility for distributing the query and possibly running through the engine. This is because the results returned by remote servers may not need to be run through the engine. I'll fix the engine tests later when this refactoring is completed to work with the new sharding style of clustering.
Add interface for WAL and stub out.
WIP: more code around writes from coordinator into shards. Shards to local store or server.
Remove cluster servers from Shard since it's not used
Merge branch 'master' into create-cluster-interfaces-and-refactor

Conflicts:
	src/protocol/protocol.pb.go
Fix server startup to wait for local server id after raft server is started
Make cluster configuration set the connection on the server object when adding it.
Make request shouldn't call connect. This happens when the server is added to the cluster config.
Wire up writes in leveldb_shard and the cluster local shard.
WIP: wire up some of the query functionality in coordinator and create query spec object in parser.
Wire up local shard and simple querying without limits, aggregates, or where clauses.
Wrote and wired up where clause. Refactored engine to be used by a shard instead of by the coordinator. Moved filtering over to engine.
Fixed aggregate queries.
Added limits for non-aggregate queries.