CP-5593: Implement PGPU.set_GPU_group

Now able to set  the GPU group for a PGPU. The new group is checked for
compatability and will have it's GPU type updated to the incoming PGPU if it is
an empty group. The group from with the PGPU is departing is also checked in
case it's left in an unusable state w.r.t. any VGPUs that may or may not be
attached to running VMs.

The code used to get the identifier string from a PCI device has been factored
out from the GPU_group and into the PCI module for reuse in the PGPU module.
Merge pull request #1362 from simonjbeaumont/cp-5593

CP-5593: Implement PGPU.set_GPU_group