[SYCL][6.3] Cherry-pick free function kernel fixes (#20236)
This is joined cherry-pick of intel/llvm#20187 and intel/llvm#20123
---
[SYCL] Allow free function kernel args be templated on integer
expressions (https://github.com/intel/llvm/pull/20187)
`constexpr` variables are not forward-declarable so if one is used as a
template parameter of a free function kernel argument, we cannot
reference the variable, but must inline the value into the integration
header.
---
[SYCL] Fix error with type aliases used as free function kernel args
(https://github.com/intel/llvm/pull/20123)
This PR fixes type name that is being printed as free function kernel
argument type in its forward-declaration in the integration header.
Before the change, we used the original argument type name, which could
be an alias - this patch makes use of the canonical type's name to make
sure that all type aliases are "unwrapped".