[SYCL] Implement coverage instrumentation for device code (#20710)
This PR reapplies the changes from #20206. It also includes the
following new changes:
1. The coverage tools were moved from compiler dependencies to E2E test
dependencies so that the SYCL toolchain can be be built without
`compiler-rt`.
2. A definition of `__sycl_increment_profile_counters` was added to fix
build errors when building with Apple Clang.
---------
Signed-off-by: Michael Aziz <michael.aziz@intel.com>
Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>