LLVM backend: handle unnamed structs when lowering array values
LLVM backend: handle unnamed structs when lowering array values

LLVM doesn't support lowering union values, so we have to use unnamed
structs to do it, which means any type that contains a union as an
element, even if it is nested in another type, has to have a mechanism
to detect when it can't be lowered normally and has to resort itself to
an unnamed struct.

This includes arrays.

andrewrk/zig,andrewrk/zig