StringAlgorithms: Refactor `cmTokenize()` function - Refactor and optimize the loop to make it shorter and faster - Make it push elements into an arbitrary (templated) output iterator - Make it a template on a separator type with the most used defaults - Add a backward compatible signature to return `std::vector<std::string>` - Add an alternative function `cmTokenizedView()` to return a vector of string views