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"

These changes break compatibility with OS X 10.5; this will be fixed in
the next commit.
Mac: Weakly link to IOHIDDeviceGetService() to restore 10.5 compatibility

Using IOKit IOService:/ paths requires the IOHIDDeviceGetService()
function, which is only available on OS X 10.6 and above.

To restore compatibility with OS X 10.5, weakly link to
IOHIDDeviceGetService() so it can be used when it's available.
When it's not available (on OS X 10.5), be naughty and pull it out of
the IOHIDDevice struct.

For OS X 10.5 compatiblity any binary using hid.c must be
compiled/linked with '-mmacosx-version-min=10.5', 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
Mac: add IOHIDDeviceGetService() ifdefs to fix compiling on 10.5

Add #ifdefs to hidapi_IOHIDDeviceGetService() to allow compiling on
OS X 10.5, as shown in:
http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3

This fix is only needed to *compile* hidapi on OS X 10.5.
hidapi apps compiled on OS X 10.6 and above (with -mmacosx-version-min=10.5)
will run on 10.5 regardless of this fix.