hash: finish moving the packing code to iterator-based interfaces; remove a bunch of code duplication from the imploders and exploders; remove pointer-assuming optimizations