Avoid unnecessary array allocations in EvaluatorPreprocessor_read().

EvaluatorPreprocessor_read() is called in two cases. For the normal
layer, the args array it produces is used beyond the bounds of the loop
in which EvaluatorPreprocessor_read() is called.

But for the text layer, the args array is used in a very short-term
fashion. This change reworks things so that a single array is repeatedly
used for the text layer. This reduces total JS allocations for the
Spoorkaart map by 11%, and has similar effects on many other PDFs.
forcing a new array by passing in null seems counterintuitve. the comment on read says it will use that argument. maybe we should pass in a new array as args? Or would this kill the optimization earlier that sometimes that array is also not needed?