[HLSL] Finish exposing half types and intrinsics always (#132804)
We previously made an implementation error when adding half overloads
for HLSL library functionality. The half type is always defined in HLSL
and half intrinsics should not be conditionally included.
When native 16-bit types are disabled half is a unique 32-bit float type
with lesser promotion rank than float.
Apply pattern #81782 to intrinsics added in #95999.
Closes #132793