Decouple `GPUThreadMappingAttr` from GPU transform dialect (#11171)

Now GPU transform dialect works with any attribute, but the attributes
must be defined outside of the code generator. In this way, iree can
define own mappers. This PR integrates this change into iree.

Cherry pick the following llvm. The PR and llvm should go together.
@beaffb041c689deb30d9b06fb3a68a1a4bae48a4