device-select-layer: add device group sorting for cpu/gpu
This sorts device groups, but only moves CPU device groups to the end and makes sure GPU device groups are sorted first.
Not sure if this needs to be enhanced to take the user preference order into account, I'm not sure how apps use device groups.