Prepends 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 prepend |
| len | number of bytes in val to prepend |
| string |