Fix #943: don't try to take 2 snapshots at a time

The `TakeSnapshot()` function in _vendor/raft/server.go was failing at `s.stateMachine.Save()` and exiting without resetting `s.pendingShapshot = nil`.  That left the raft server in an invalid state.

`s.stateMachine.Save()` was failing with the error message "gob: encodeReflectValue: nil element", which comes from the `Save()` function in cluster/cluster_configuration.go.  This is a separate issue.
OK, got it, I was thinking that might be it from the title of the PR. I guess I might have put the lock inside TakeSnapshot(). This is kind of a matter of taste though -- depends on one thinks about TakeSnapshot().