Implement ABI rule requiring stack parameter passing when out of registe...

...rs

This implements the following rule (x86-64 ABI, section 3.2.3, "Passing"):
"If there are no registers available for any eightbyte of an argument,
the whole argument is passed on the stack."

We keep track of the number of registers allocated so far and use the indirect
parameter passing convention for parameters occupying more than one register
if we are out of registers. If the parameter uses a single register, we can
still use the direct convention because the code generator will pass the
parameter on the stack anyway, and it normally gives us simpler IR.
Sorry for the dumb question. What rule says that "if it would just occupy one register (which pushes the whole argument onto the stack anyway)."?