testbench: add forked IDL fixtures

For the upcoming redirection tests.
test: ipc: add basic redirection test

The less-than-basic redirection tests involve the various typed transfers. The
kernel should transfer stringitem words so that the received message can be
sent right out of the message registers, and possibly something similar with
Map/Grant items (into a sufficiently large temporary receive window, or
something).
ipc: add redirection

This redirects a closed, redirected IPC's receive phase.

That's not explicitly stated in the L4.X2 spec, but the reference to
redirector chains implies it. By this reading, redirectors are permitted to
reply to redirectees directly, or to forward to a thread other than
IntendedReceiver.
testbench: make forkserv's fault tracing compile again
test: ipc: fix variable fuckup in munge_case()

Gotta be careful about these when moving global variable references into
functions.
test: ipc: make point_xfer_timeouts less brittle

In general, calls to diag() and such take time. They should therefore not be
made within the timing-sensitive parts of such tests.
test: string: add tests for simple message overflow

I.e. two string items when the receiver only accepts one, and a string item
that's too long for the receiver's buffer.

Missing cases: a receiver that's got string items in its BRs but BR0 doesn't
indicate string reception; and one where the bit is set but there are no
string items. Also the same for compound strings.
add <alloca.h>

Damn them purists to hell.
ipc: rework typed transfers

Three things happened in this changeset:

  - recognizing when the receiver has fewer string buffers than the sender is
    trying to send string items (overflow signaling);
  - changing typed transfers to proceed in stages, i.e. first string
    transfers, and then map/grants;
  - making string item consumers robust against concurrent user-space
    modification (e.g. at end-of-stringitem conditions, and the like).

This changes nearly everything about how ipc_state and fault_peer work. As a
result typed transfers are so much cleaner in ipc.c that they could be moved
into a different module altogether, leaving state machine handling and the
syscall interface behind.

Also, E2BIG was added to <errno.h>.