Give snapshot a state of its own.
Only call hooks for noderoles in committed snapshots.
Merge pull request #696 from VictorLowther/pull-req-master-9fc9a35a19bcde0e9191c1b957eded3f6024f5b9

Give snapshots states of their own, and update the noderole state machine to reflect that. [1/2]