How arguments are passed from the caller (C) to the callee (E)

* caller puts args on the stack, left to right.
* send instruction sets argument count in the Message
 * Message knows the position on the stack the arguments begin
   without asking the task.
 * See below for how splat is handled
* sp of the caller is rewound to remove the args and receiver
 * Now ready for return value to be pushed on it's stack.
* E reads argument values out of Message


Splat handling.

Message.get_argument has 2 modes. One reads directly from the C's stack, and
the other reads arguments from an internal Array object.

When C sends a fixed number of arguments, mode 1 is used.
When C calls with a splat, mode 2 is used.

