MAINT: move byteswap macros to inlines in header

removes some duplication and allows older gcc that can't detect the
byteswap pattern to use the faster swapping instructions.
BUG: check alignment before loading the data

some cpus don't support loads that are not aligned to the elementsize.
regression introduced in 99cb95f7379a9.
MAINT: use npy_is_aligned in a few more places
Merge pull request #3376 from juliantaylor/unaligned-access

Unaligned access