[NFC][SYCL] `std::shared_ptr<device_image_impl>` cleanups (#19506)
* Avoid unnecessary copies
* Use rvalue-reference if param is getting moved from
* Remove `DeviceImageImplPtr` type alias (not too many uses remaining,
doesn't bring much value anymore)
* Inline some temporaries so that explicit `std::move` wouldn't be
needed
* Switch some sets to use raw `device_image_impl *` ptr
* `kernel_impl::getDeviceImage` to return raw reference