Redmine/6119

Wouldn't be so terrible if cf_null would be a true parser keyword that results in an RVAL that has a type, but no value (ie rval::item == NULL, rval::type == RVAL_TYPE_SCALAR). The problem is that cf_null is grogged up like a string, and then passed all the way through the evaluation stack so that every single function that does anything with lists has to skip over this using rather expensive strcmp (compared to null-pointer comparison).

And if `cf_null` would be a parser keyword, then one might just as well just use `{}` instead without introducing new symbolism.

But it is what it is, and as long as there is code that generates cf_null entries, we have to skip over them.