[NextPluggabledevice] Enable XLA auto clustering mode for NextPluggableDevice
@jyingl3 We found that XlaCompile/XlaRun is supported for PjRtDevice, but is not working when device type is not GPU/TPU, This PR resue GPU's compilation device if NextPluggableDevice's jit_device_type is XLA_GPU_JIT. After fixing this, we can run simple case with XLA auto clustering mode.

can you help to have a look. Thanks.  Thanks Zhoulong! Glad that you can run simple case with XLA auto clustering mode for NextPluggableDevice's after this change! Hi Zhoulong, the tests are failing for a different issue - `next_pluggable_device_factory.h` includes `tensorflow/core/framework/device_factory.h` but `next_pluggable_device_factory_hdrs` does not include dependency for it. It looks like `device_factory.h` does not have a header only build target? I wonder can `xla_op_registry.cc` depend on the implementation of `next_pluggable_device_factory.h` instead (since they are compiled with TF lib)? Or do you have any other suggestions? > Hi Zhoulong, the tests are failing for a different issue - `next_pluggable_device_factory.h` includes `tensorflow/core/framework/device_factory.h` but `next_pluggable_device_factory_hdrs` does not include dependency for it. It looks like `device_factory.h` does not have a header only build target? I wonder can `xla_op_registry.cc` depend on the implementation of `next_pluggable_device_factory.h` instead (since they are compiled with TF lib)? Or do you have any other suggestions?

@jyingl3  next_pluggable_device_factory implementation will dependent on next_pluggable_device which also dependent on PjRt and core/framework(graph path), it will bring  circulate dependency I remember, I add device_factory as dependency of hdr, but seems test still failed, I can't see the detail since it seems it is internal CI
 ``

> > Hi Zhoulong, the tests are failing for a different issue - `next_pluggable_device_factory.h` includes `tensorflow/core/framework/device_factory.h` but `next_pluggable_device_factory_hdrs` does not include dependency for it. It looks like `device_factory.h` does not have a header only build target? I wonder can `xla_op_registry.cc` depend on the implementation of `next_pluggable_device_factory.h` instead (since they are compiled with TF lib)? Or do you have any other suggestions?
> 
> @jyingl3 next_pluggable_device_factory implementation will dependent on next_pluggable_device which also dependent on PjRt and core/framework(graph path), it will bring circulate dependency I remember, I add device_factory as dependency of hdr, but seems test still failed, I can't see the detail since it seems it is internal CI

The failure is likely due to other issues. I just approved the change and let's give it a try. > ``
> 
> > > Hi Zhoulong, the tests are failing for a different issue - `next_pluggable_device_factory.h` includes `tensorflow/core/framework/device_factory.h` but `next_pluggable_device_factory_hdrs` does not include dependency for it. It looks like `device_factory.h` does not have a header only build target? I wonder can `xla_op_registry.cc` depend on the implementation of `next_pluggable_device_factory.h` instead (since they are compiled with TF lib)? Or do you have any other suggestions?
> > 
> > 
> > @jyingl3 next_pluggable_device_factory implementation will dependent on next_pluggable_device which also dependent on PjRt and core/framework(graph path), it will bring circulate dependency I remember, I add device_factory as dependency of hdr, but seems test still failed, I can't see the detail since it seems it is internal CI
> 
> The failure is likely due to other issues. I just approved the change and let's give it a try.

Looks like the build still fails. Including "//tensorflow/core:framework" instead of "//tensorflow/core/common_runtime:device_factory" will make the build pass. Will that cause circulate dependency? > //tensorflow/core:framework

seems no circulate dependency, I modified it to see whether still have failure. thanks
This PR is for enabling XLA auto clustering mode for NextPluggableDevice, the basic idea is reusing GPU 's compilation device if plugin register it's jit_device_type as "XLA_GPU_JIT".