preserve array type appropriately in scalar <op> array calls, for #1641

but, scalars can still promote an array from integer to float and from real to complex