This commit unifies target environment queries into a new wrapper
class spirv::TargetEnv and shares across various places needing
the functionality. We still create multiple instances of TargetEnv
though given the parent components (type converters, passes,
conversion targets) have different lifetimes.
In the meantime, LowerABIAttributesPass is updated to take into
consideration the target environment, which requires udpates to
tests to provide that.
Depends On D75876
Added a comment on the previous CL in this stack, but just mirroring here. I think its would be good to have a get method which will set the default target env. Its seems more ergonomic to me.