[SYCL][Graph] Implement dynamic command-groups
Implement Dynamic Command-Group feature specified in PR [SYCL][Graph] Add specification for kernel binary updates
This feature enables updating ur_kernel_handle_t objects in graph nodes between executions as well as parameters and execution range of nodes.
This functionality is currently supported on CUDA & HIP which are used for testing in the new E2E tests. Level Zero support will follow
shortly, resulting in the removal of the XFAIL labels with tracker number from the E2E tests.
The code for adding nodes to a graph has been refactored to split out verification of edges, and marking memory objects used in a node, as separate helper functions. This allows path for adding a command-group node to do this functions over each CG in the list before creating the node itself.
The dynamic_parameter_impl code has also been refactored so the code is shared for updating a dynamic parameter used in both a regular kernel node and a dynamic command-group node.
See the addition to the design doc for further details on the implementation.