iic_rdwr_data->nmsgs is uint32_t, so limit the allowable number of
messages to prevent memory exhaustion and short allocations on 32-bit
systems. Since iicrdwr is intended to be a workalike of a Linux i2c-dev
API, use the same limit of 42 that Linux uses.
Also check the return value of copyin(9) to prevent unnecessary allocation
in the failure case.
MFC after: 1 week
Submitted by: ngie