rustc_trans: rewrite mips64 ABI code
This PR rewrites the ABI handling code for 64-bit MIPS and should fix various FFI issues including #47290.
To accomodate the 64-bit ABI I have had to add a new `CastTarget` variant which I've called `Chunked` (though maybe this isn't the best name). This allows an ABI to cast to some arbitrary structure of `Reg` types. This is required on MIPS which might need to cast to a structure containing a mixture of `i64` and `f64` types.