Hotplug for HID devices

This patch implements basic hotplug support for HID devices, and stub code for all other devices where backend does not yet support hotplug: if any other backend can actually rescan, add and remove devices this patch allows easy hotplug implementation for other device types as well. Unfortunately for example portmidi has no concept of hotplugging devices.

Please note there seems to be a memory leak with hotplugging HID devices on OS X, which I have not seen  with this patch + updated hidapi I use personally: it doesn't look like the bug is in this code but in hidapi.

I suggest someone else tests this patch with latest hidapi version as well, and we should likely pull latest hidapi fixes for 1.12 anyway. I did not include these in this patch to make the commit easier to read.