String search & replace is a higher level function (unlike BLI_string.h) which handlers lower level replacements for printing and string copying. Also use BLI_string_* prefix (matching other utilities). This makes it possible to use BLI_string in Blender's internal utilities without depending on DynStr, MemArena... etc.