[WebGPU] Add Gather int64 support and make kernel version numbers function params (#31714)
Gather is a pure data-movement op (elements are copied, never
interpreted in shader arithmetic), so int64 can be supported safely.
int64 (stored as vec2<u32>) is copied losslessly via the raw
storage-word path, preserving the full 64-bit value instead of the
truncating i32 value type used by arithmetic kernels. int64 is only
added to the "T" constraint when the enable_int64 provider option is
set.
This PR also refactor the int64-migrated kernels' factory functions to
take the version range as runtime function parameters instead of
template parameters (StartVersion/EndVersion). This removes the explicit
template instantiations (reducing binary size) and eliminates the
duplication of version ranges between the instantiations and the
registrations in webgpu_execution_provider.cc; the ranges now live only
at the registration site. (This is a follow up fix of #31049 )