Untangle snapshot mapper

Also fixed performance issue with `StructEncoding` arbitrary
Do you mean have `context` public and just mutate that in each map/reduce function?