Fix logic error

Error was introduced in 13ef0becc9d5606a27385c0c2cdd38db1085fb6b

libusb_control_transfer returns negative values indicating libusb
error codes on failure. A non-negative return indicates number of
bytes returned. So a failure of LIBUSB_ERROR_PIPE (-9) for instance
would instead, if using the absolute value, indicate a successful
9-byte return. Logic around the hub descriptor was rewritten
to (hopefully) make it clearer.
Darwin utility routines
Enable compiling under Darwin
bcdUSB is slightly different from speed
Darwin cannot provide bcdUSB unless device is open
Super Speed implies bcdUSB of 0x300
-D option is Linux-only
Use error names, not codes
Updating manpage
New approach to names, for those without udev
Taking advantage of cached information
Demo of passing options using libusb_open_extended()

Give the ability to show effects if desired

Use get_kernel_driver_name()

Conflicts:
	usbmisc.c