compiler/arm/c-call: add support for passing/returning float ins c calls
* The C calling convention for ARM passes single and double float
arguments in the first 16 single (8 double) float registers as long
as there is space and then falls back to the stack.
* Each argument is passed in the first unallocated registers of
appropriate size, e.g. void(float, double, float) and void(float, float,
double) use the same registers for the two float and the double register.
* Returned single or double floats are passed in the first single or
double float register.
* I didn't implement stack passing for now, since I have no idea how
I would go about doing that.