Fix #440. Update protobuf client to clear out heartbeat requests after they've completed
Merge pull request #441 from influxdb/fix-440-heartbeat-timeouts

Fix #440. Update protobuf client to clear out heartbeat requests after t...
Update changelog
shuffle things around
simplify the recovery logic
add a way to tell if the cluster is in sync or not
remove a redundant test
unify the two server structs
wait for data sync instead of sleeping
remove some sleeps from the integration test suite but not all of them
remove some sleeps from the integration test suite but not all of them
increase timeout and panic if the servers didn't sync
start the protobuf server after raft has initialized

Otherwise, we may get a protobuf request to write data to the local
shards which don't exist yet
make sure we always wait for the server to start
use the same query spec
remove a commented test
make the heartbeat backoff configurable

We mainly need this for testing. before this change the backoff
defaulted to 1 second and could get up to 10 seconds before the server
attempted to do another heartbeat.
log an error if the graphite plugin can't write data
reduce the heartbeat interval and backoff in the tests
fix some failing tests