Parse out a token using the supplied predicate. Will keep consuming characters into the resulting token provided the predicate returns EParseState::Continue or EParseState::StopAfter. Optionally supply a token to accumulate into Returns a string token for the stream, or empty on error