WIP: Generic GPU data source
- Counters have been separated into description and value.
- Groups have a more generic design, with name, id, list of counter ids, and subgroups.
- For GPUs we have two classes: Device and Driver. This reflects the fact that there could be different drivers that could work for a single device.
- Two static functions populate a vector of devices and drivers supported by this generic GPU data source.