connects to #6
User should pass allocated strings and concat should not make the choice of calling malloc for the user. e.g. realtime users may have this memory preallocated at startup and don't want spurious malloc in their realtime loop: https://github.com/ros2/c_utilities/blob/bb2fd057f15c9556f602bc2da192aab61cdd39f3/src/concat.c#L40