darwin: don't assume an interval of 1 or high/super speed

This patch updates submit_iso_transfer to use the bInterval value of the
endpoint and the speed of the device to determine the last frame of the
transaction.

Fixes: #165
Linux: Add support for the new get_capabilities ioctl

* There were a few (new) usbdevfs capabilities which libusbx could not
  discover in any other way then checking the kernel version.
* However, this presents the following problems:
  1) It is just not very pretty
  2) Given the tendency of enterprise distros to backport stuff it is not
     reliable
  3) Some of these features turn out to not work with certain host controllers,
     making depending on them based on the kernel version not a good idea
* Therefore a new USBDEVFS_GET_CAPABILITIES ioctl has been added to the kernel
  to offer a better way to find out a device's capabilities (technically
  the capabilities of the host controller to which the device is attached,
  but that does not matter).

Conflicts:
	libusb/os/linux_usbfs.c
	libusb/version_nano.h
Linux: Avoid unnecessary splitting of bulk transfers

* With the latest kernels it is no longer needed to always split large bulk
  transfers into multiple urbs. This patch takes advantage of this by not
  splitting when not necessary. Note that the non-split code path is in essence
  using the old split code path with an urb count which is always 1.
* This leads to more sane handling of large transfers with recent kernels,
  although our splitting code is well tested, not splitting at all still is
  a lot better :)
* When used with a recent kernel, this also fixes the problems, on XHCI attached
  devices, when a large bulk-in transfer ends with a short read in an urb other
  then the last urb.
* For more on this see: http://marc.info/?l=linux-usb&m=133797554910355

Conflicts:
	libusb/os/linux_usbfs.c
	libusb/version_nano.h
Use AM_CPPFLAGS instead of INCLUDES in examples/Makefile.am
Add definitions for Endpoint Companion and BOS descriptors.
Add APIs for parsing the Endpoint Companion and BOS descriptors.

Nathan: Modified the original patch to fit the interface now already
provided by the FreeBSD implementation of libusb 1.0 and fit with
the rest of libusb.h.

Some discussion: The FreeBSD API is not optimal. Further discussion
is needed to determine how to update the API without breaking code
that used the existing API. This discussion should probably involve
the FreeBSD developers and could be handled in a 1.0.x release.

An example has been added to show how to use the new API.

Fixes #110
update AUTHORS
darwin: don't need darwin_error_str if ENABLE_LOGGING is not defined
Update release notes for 1.0.16 release.
Add support for libusb_strerror()

Fixes #102
core: this is 1.0.16-rc7

Rebasing lost the meaning of previous release candidates. Just set the
version to 1.0.16-rc7.
Update .gitignore