alias templates for packet code
This MR converts a lot of the packet trait code to use alias templates. Given that this affects diverging code paths on different architectures, this MR probably requires a lot of testing before merging. I've only run the tests on (AVX) x86.