Simplify byteswapping primitives

This has been tested on GHC 7.4.1 through GHC 7.8.3
(GHC 7.2.x which was never considered a proper stable release
lacks the `CapiFFI` extension)