If AppendPath is a relative path, append it as a relative path onto InOutPath. If AppendPath is absolute, reset InOutPath and replace it with RelPath. Handles presence or absence of terminating separator in BasePath. Does not interpret . or ..; each occurrence of these in either path will remain in the combined InOutPath.