[WIP][mips] Promote i32 arguments to i64 for the N32/N64 ABI.

Remove direct handling of i32's in the N32/N64 ABI by promoting them to
i64. This more closely reflects the ABI documentation and also fixes
problems with stack arguments on big-endian targets.

We now rely on signext/zeroext annotations (already generated by clang) and
the Assert[SZ]ext nodes to avoid the introduction of unnecessary sign/zero
extends.
[WIP][mips] Treat softfloat and structs correctly
Fix remaining tests.

bswap.ll, ctlz-v.ll, ctlz-v.ll: It's not possible to put signext on a
vector type so we just accept the sign extends here for now.