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 ?
Ah, tricky...  I think it would be worth clearly specifying this in the commit message. i.e.
```
1. pos must be string::npos when lastPos=string::npos, so no need to check pos != string::npos in the while condition. A != a || B != b = !(A==a && B==b) = !(B==b) = B != b
2. as pos needn't be in the condition, it mayaswell be in the while loop.
3. rename variables to reflect what they do.
```
That way in 6 months time when we're hunting a bug we don't see this and have to spend time figuring it all out again :)