StringUtils::Tokenize: clarify, simplify and optimize

Variables names were wrong, no need to check "pos" for "string::npos", comments were incorrect (notice `// Find first "non-delimiter"`).
@jmarshallnz ?
Perhaps I'm reading the old code incorrectly, but it seems this:
```
std::vector<std::string> tokens;
Tokenize("_a", tokens, "_");
assert(tokens.empty());
```
would have passed before, but now it fails?  IMO it should fail - I wonder how long it's been broken - will check history.