RANK: Create all variables together, in order.
An upcoming commit will rewrite the RANK implementation so that the
new variables are not created until after a pass through the data.
(This makes sense because their values cannot actually be determined
until that pass is complete, so there is no point in allocating space
for them in cases.) To do that, it is necessary to figure out the
variable names (and that they will be valid variable names) in
advance. This commit switches to that approach in advance.
This approach has another small advantage: the order of the variables
added by RANK to the dictionary does not depend on whether the
variables are named by the user or by generating a name. (This
is why the rank.at test case changes.)