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.
compact the in memory log and then cut the on disk log. it makes a lot of sense to me.
the final goal is to remove this cut function though.