Add initial support for little endian MIPS and updated the status of big-endian support

Most tests pass for little endian but a significant proportion of them pass by luck.

The issue is that LLVM does not implement dynamic stack realignment for MIPS at the moment but vector alignment exceeds the natural stack alignment. This only causes failures in the shuffle tests but an experimental patch to turn this into a compile-time error (instead of incorrect code generation) revealed that most tests trigger the problem case.