Improve endian define handling and fix a couple typos

On Android, `BIG_ENDIAN` is 4321 and `LITTLE_ENDIAN` is 1234.  It also defines `__BIG_ENDIAN` and `_BIG_ENDIAN`.  These are meant to be tested against `_BYTE_ORDER`, and come from `<sys/endian.h>`.

GCC 4.6 normally uses `__BYTE_ORDER__` and `__ORDER_LITTLE_ENDIAN__` / `__ORDER_BIG_ENDIAN__` however.  They work the same way.

LLVM simply uses `__LITTLE_ENDIAN__` as 1, the obvious simple option.

MSVC provides nothing, but `_XBOX` seems like a reasonable test to make (ignoring the existence of the Xbox One.)

Because of this, I made it use `COMMON_LITTLE_ENDIAN` and `COMMON_BIG_ENDIAN`, which should have less conflicts.  They can be defined in e.g. CMake / Qt / etc. in the case that the above detections fail.

This implements the above, and updates native with similar fixes + a quickfix for an iOS build error.  See hrydgard/native#100 which should be merged first.

Tested on iOS, Mac, Windows, and Android.  Not actually tested on anything that isn't little endian, though.

-[Unknown]