snappy version 3 - work in progress

Complete simplified rewrite of snappy.
Would it not be better to do this in the destructor?