ARM C ABI implementation
auto merge of #5115 : sanxiyn/rust/arm-abi, r=brson

Type size and alignment code needs to be factored, but I didn't want to interfere with MIPS port. Can be done later.

Fix #4797.
Add a 'start' lang item and use it instead of rust_start