on disk snap

## goal: 
1. save snap to disk
2. load snap from disk
3. detect corruption

## non-goal: 
1. glue with etcd.
2. async snapshotting. 
3. on disk log compact.
4. buffering and performance.
we need to store the crc of the last entry in the snapshot. but we have not even implemented rolling crc in wal yet. so can we just keep this as it is?