preliminary support for MIPS32 target

The MIPS O32 ABI implementation is translated from clang's.
do not cache MIPS32 bitcast llvm type

Bitcast types are dependent on argument offset.
If we cache them, we may get misaligned types.
add missing file for MIPS target
ExternalTarget refactoring

It takes some ideas from clang.
ExternalTarget implements target ABI and generates ExternalFunctions.
And ExternalFunction uses computed results to generate LLVM code.
ExternalTarget also caches ExternalFunctions that have the same type.
Merge pull request #484 from crabtw/mips

preliminary support for MIPS32 target