join: Don't add delimiter if only null-values are left

Looks like a nested loop that introduces polinomial complexity,
but the inner loop advances the outer loop as well.

Fixes Redmine #6552
```
"t" slist => { @(n), @(m), @(n), ":" };
...
"expected_t" string => "a:b:c:a:b:c::";
```
I want to know that we skip over cf_null entries part way through, not just the ones at the end.
In particular, I want to know get the right number of separators between non-null entries where we skip the null ones.