CP-5854: Add GPU_group.allocation_algorithm field

Add the support to the datamodel for setting the allocation algorithm for a GPU
group. This is an Enum and can be either `depth_first or `breadth_first. This
will be used when allocating vGPUs on pGPUs within a GPU group at VM start
time.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-5845: Add GPU_group.allocation_algorithm to CLI

Expose this field via the CLI and provide getter and setters. The user visible
names on the CLI match those in the requirements specification i.e. "capacity"
(= depth-first) and "performance" (= breadth-first).

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-5845: Use explicit allocation algorithm names

Using "performance" and "capacity" for breadth- and depth-first respectively
may lead to confusion and may not be future proof. Exposing the names of the
algorithms explicitly to avoid this.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Merge pull request #1396 from simonjbeaumont/cp-5845

Add allocation_algorithm switch for GPU_group