Add VFP register saving to trampolines.
Handle the MONO_ARM_FPU_VFP_HARD case in mono_arch_emit_setret ().
Implement return value passing for ARM hard float.

This is currently only for float32/float64 values. They are passed
in the d0 register. The code is a bit complicated because we only
speak float64 in the JIT, so float32 values have to be converted
to/from float64.
Print detected ARM version in configure.
Implement add_float () for hard float on ARM.
Add register assignment for double-precision args on ARM hard float.
Make sure FPRs aren't used for implicit arguments on ARM hard float.
Implement support for single-precision args on ARM hard float.

This is done with a gross hack that maintains a list of args
in the MonoCallInst and emits them as late as possible. This
is not pretty, but we have to work around the register
allocator. See the code comments for details.
Correct the VFP check in exceptions-arm.c.

This should be a runtime decision, and also should be in
effect when using the hard float ABI (ARM_FPU_VFP_HARD).