Massive refactoring to better support comparators and snapshots
Make snapshot iteration safe, add tests
Update TravisCI config & upload docs