Mac: Use IOKit IOService:/ paths for devices

Change hid_enumerate() and hid_open_path() to use IOKit IOService:/
paths to uniquely identify devices, instead of creating a path
(done by the make_path() function).

The path passed to hid_open_path() now must be a valid path to an
IOHIDDevice in the IOService plane, like:
"IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/EHC1@1D,7/
AppleUSBEHCI/PLAYSTATION(R)3
Controller@fd120000/IOUSBInterface@0/IOUSBHIDDriver"

With this change, any binary using hid.c must be compiled/linked
with '-mmacosx-version-min=10.5' to work correctly on 10.5.
(this is necessary so IOHIDDeviceGetService() is linked weakly)

Trying to run a binary on OS X 10.5 that has IOHIDDeviceGetService()
strongly linked results in the following error:

dyld: unknown required load command 0x80000022
Trace/BPT trap