client: Add periodic keep-alives to maintain session with cluster
StateMachine: Expire client sessions after about an hour of inactivity

The leader adds its local time to each command and puts this in the log;
state machines on different servers use this to expire clients
deterministically (that way the state machines don't diverge).

Closes #31: StateMachine needs unit tests.
Silence warnings about TCP_NODELAY

The warnings were too verbose for unit tests, which pass in things like
pipes. Dropped the severity down to NOTICE.
Return leader address to clients that connect to wrong server

Closes #35: RaftConsensus: return leader hints
Add cpplint check to blacklist std::condition_variable

See 14560af2, fc4d35e3, and 1b4564a8 for rationale (and this just bit me
again).