darwin: use destructor function instead of atexit to cleanup state

Using an atexit function to cleanup the state could cause weird interactions
with other atexit functions. Ensure the darwin cleanup function is called
last by making it a destructor function instead.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
Documentation: Update the doxygen tagline

* Make it the same as the one used on the website and elsewhere
darwin: squash warning about returning size_t as int

I also updated the documentation on the backend get_config_descriptor
function. The documentation incorrectly stated that this function returns
0 on success when it really returns the length of the descriptor.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
Enabled additional warnings in Xcode project
Removed empty \see statements, fixing -Wdocumentation warnings
Enabled LTO optimization in release in Xcode project
Removed obsolete comment related to libusbx fork
examples: fix incorrect error message in fxload

* Closes #3
 Updated netlink code to parse events that do not contain BUSNUM and
  DEVNUM but do have a DEVICE parameter.

 These netlink events are now parsed:
 >>>>>>>>>>>>>>>>>
 add@/devices/platform/brcm-ohci-0.0/usb3/3-2/3-2:1.0
 ACTION=add
 DEVPATH=/devices/platform/brcm-ohci-0.0/usb3/3-2/3-2:1.0
 SUBSYSTEM=usb
 SEQNUM=290
 PHYSDEVBUS=usb
 DEVICE=/proc/bus/usb/003/003
 PRODUCT=45e/28e/114
 TYPE=255/255/255
 INTERFACE=255/93/1
 <<<<<<<<<<<<<<<<<

 Also added a retry when opening the device file to work around a race condition with the kernel