Appends len bytes of val to string.
Because len is provided, val may contain embedded nuls and need not be nul-terminated.
Since this function does not stop at nul bytes, it is the caller's responsibility to ensure that val has at least len addressable bytes.
| val | bytes to append |
| len | number of bytes of val to use |
| string |