skinny: improve cleanup of devices during registration and unregistration, resolves some weird state issues when devices get disconnected