Add byteswap intrinsics for converting from big/little to host endian

These are similar to the ntoh[s|l] functions in C and have the style of
from_[be|le][16|32|64].
libnative: Use [from|to]_be16 instead of bswap16
libextra: Use from_be32 instead of bswap32 in vuint_at()

Also use the fast version of vuint_at() on all architectures since it now
works on both big and little endian architectures.