ipc: report message overflow when receiver has no receive buffers

This should be tested for properly, and the "no string buffers even indicated
in acceptor" case also.
test: string: extend too_many_items to cover absence of receive buffers

This is distinct from just the absence of the right acceptor by having the low
BR0 bit set but without BR1 being a valid string item. (The acceptor-less case
should have a test as well.)
ipc: change limit parameter to stritem_first()

It's now the number of words, rather than the maximum offset. The latter was
rather odd because the parameter was given as an unsigned integer, thereby
forbidding iterator initialization for an absence of a string item.

Similarly the "max" field in <struct stritem_iter> was changed to an int8_t .
ipc: fix the >2 string transfer IPC path

Not only weren't the meta structures being copied at all, but the pointer
calculation was also wrong. *paperbag*
test: string: add many-strings test case

Originally written before the fix, but reordered in rebase so as to not
introduce a panic in the development history while the test scripts don't
handle it gracefully.

This demonstrates once more that what hasn't been tested is likely broken.
test: string: add invalid_buffer_item

It explicitly tests the case where the receiver indicates that string items
will be received, but doesn't put a valid string item header in BR1.