This change promotes `gpu.func` / `gpu.launch` metadata that was
previously carried as discardable attributes into proper inherent ODS
fields (`kernel`, `workgroup_attributions`), renames the block-argument
helpers to avoid clashing with generated getters, and routes `func.func`
and `gpu.func` lowering through a shared helper that maps discardable
`llvm.*` attributes into `llvm.func` properties.
Downstream producers (Flang CUDA device func transform, kernel
outlining, sparse GPU codegen, XeGPU) set kernels via `setKernel(true)`
instead of manually attaching `gpu.kernel`.
Fixes#185174
Assisted-by: CLion code completion, GPT 5.3 - Codex