[GCLowering] Fix phis of unions
This fixes gc lowering for phis of the form:
```
%phi = phi {%jl_value_t addrspace(10)*, i8} [%aunion, %a], [%bunion, %b]
```
This kind of struct (used by the tagged union representation) has special support
in GC lowering. After optimization, these structs often survive quite far as a
struct (i.e. the destructuring of them is often elided). We simply need to extend
this support to the cases that handle phi and select nodes.
Fixes crashes with the new optimizer enabled noted in #26925