Make some code more idiomatic

The nice thing about this implementation is that (on x86_64) it compiles down to a single assembly instruction (bswap). For the loop based approach the compiler is apparently not able to determine that this is the intended result. However, if you want to avoid unsafe code (for now) I think using `[u8, ..8]` is the least you should do. Besides avoiding a heap allocation, it also documents the intent that this function always returns exactly 8 bytes.