Don't make throw-away slurpy arrays in QAST nodes.

Switch to using a sentinel and optional parameter. This should be a
win on all backends.