snappy version 3 - work in progress

Complete simplified rewrite of snappy.
Also, I need to add some error handling in there, good that you reminded me (and then having it in the destructor make total sense)