Add support for Pathways topology in GpuTopology.
Add support for Pathways topology in GpuTopology.

This CL adds a new field to GpuTopologyProto to represent Pathways topology. The new field is a oneof field that can be either DefaultTopologyProto or PathwaysTopologyProto. The DefaultTopologyProto is used to represent the default topology, which is the topology used by the SE GPU PJRT client. The PathwaysTopologyProto is used to represent the Pathways topology, which is the topology used by the Pathways PJRT client.

This CL also updates the GpuTopology class to support the new field. The GpuTopology class now has a new member variable, topology_kind_, which is a std::variant that can be either DefaultTopology or PathwaysTopology. The GpuTopology class also has new methods, number_of_devices() and number_of_hosts(), which return the number of devices and hosts in the topology, respectively.

This CL also updates the SE GPU PJRT client to use the new field in GpuTopologyProto. The SE GPU PJRT client now uses the default topology by default.
