don't expand scalar keys of (global) arrays when the contextual filter is an array

 the only point of doing so was to avoid crashing on:
 - val: if(always_false, array[badindex], goodval)
however this case is more efficiently handled by simply changing the key to -1

in an if expression like above, the final result should be the same (but computed more efficiently because the expansion happen later), but in the case of an align expression, this added a dimension and caused problems
- aligned: if(filter_expr, align(..., array[0], ...), False)