Tweak Zip implementation

This pull replaces most of the `Zip` implementation to use mixins to for simple element construction, rather than using run-time emplaces.

It makes the code cleaner, and safer to boot.

I did not change any behavior here, just code. I did leave in some comments in places I found fishy though.