[SYCL] Refine annotated_ptr address space based on compile-time USM kind (#11623)
Right now the annotated_ptr extension applies compile-time properties on
`decorated_global_ptr` for SYCL device code. As the SYCL extension
[sycl_ext_oneapi_usm_malloc_properties](https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/proposed/sycl_ext_oneapi_usm_malloc_properties.asciidoc#sycl_ext_oneapi_usm_malloc_properties)
introduces compile-time property "usm_kind"(implemented in #10235 ),
this PR further refines the address space of this pointer (using
`decorated_device_ptr` or `decorated_host_ptr`) when
1. `usm_kind` property is specified in annotated_ptr type, and
2. both `__SYCL_DEVICE_ONLY__` and `__ENABLE_USM_ADDR_SPACE__` are
turned on (i.e. requiring compiler flags "-fsycl-device-only
-fsycl-targets=spir64_fpga")
Other changes:
- move `annotated_ptr.hpp` out from `annotated_arg` file into a separate
folder
- add new header file `annotated_ptr_properties.hpp` for annotated_ptr
specific properties