Add a more stable Device ID to SDK

Feature Request

In the spirit of opening discussions, here's one.

In the OpenRGB integration for Home Assistant, we create Home Assistant devices and entities for each of the OpenRGB devices.

For that to work well, we need a way to reliably identify each device. To avoid creating duplicate devices on a Rescan, for example.

However, the OpenRGB Device ID is very unstable. From what I can tell, it is simply the index, which changes depending on whether a new device was plugged or unplugged.

Can a more stable Device ID be included in the SDK?

I understand there may be no such thing as a 100% stable Device ID, but I believe the current approach could be improved.

For example, this is the Device ID I calculate in Home Assistant:

https://github.com/home-assistant/core/blob/dev/homeassistant/components/openrgb/coordinator.py#L99-L114

But it would be much nicer if this could be abstracted/handled by OpenRGB itself, so that all clients could benefit.