Inserts len bytes of val into string at pos.
If len is positive, val may contain embedded nuls and need not be nul-terminated. It is the caller's responsibility to ensure that val has at least len addressable bytes.
If len is negative, val must be nul-terminated and len is considered to request the entire string length.
If pos is -1, bytes are inserted at the end of the string.