WIP *: init for on disk snap support

Please review... sorry for the fat pr... and it will grow a little bit. we need to change main.go and maybe add more tests.
what's your motivation for having a single interface rather than separate ones for snapshotting/WAL-ing?