[SYCL][COMPAT] Atomics: Support for multiple datatypes, remove runtime memoryOrder (#11788)
This PR replaces #11338, following discussion with DPCT team. Change
summary:
- Remove runtime `memoryOrder` option (no longer needed)
- Define `type_identity_t` and use it to avoid template deduction
errors.
- New tests for the above (e.g. `int *` addr with `unsigned int`
operand)
- New free function `atomic_fetch_compare_dec`