KMS backend should remove/destroy GPU object when a secondary GPU gets unplugged
Once merge-request !713 (merged) is merged, mutter will no longer crash after the removal (hot unplug) of a secondary GPU. But the GPU object will still stick around since the meta-backend-native code only listens for the udev "device-added" signal and not for the "device-removed" signal.
Fixing this first requires adding some cleanup / dispose code to existing code which currently does not expect its objects to ever be disposed:
- Add cleanup code to the MetaKmsDevice code
- Add cleanup code to the MetaGpu code