Windows: Add VS2012 solution files

* As well as try to clean up MS's MSVC mess...
Core: Filter out 8-bit characters in libusb_get_string_descriptor_ascii

* Closes #68
Core: Use HAVE_SYS_TYPES_H and HAVE_SIGNAL_H

* These files may not be available on all platforms (eg. WinCE)
Windows: Add windows_common.h header

* This file contains definition that will be shared between the
  Windows and Windows CE backends
Windows: Simplify poll_windows and add provisions for WinCE

* Because poll_windows now requires struct usbi_transfer to be
  defined, it's inclusion in libusbi.h had to be moved down.
WinCE: Add support for WinCE (sources)
WinCE: Add support for WinCE (Solution files)
Windows: Display error code in default case of windows_transfer_callback
Core: Don't wait for completion if cancel_transfer failed

* See http://libusbx.1081486.n5.nabble.com/Libusbx-devel-libusb-interrupt-transfer-does-not-return-in-case-of-error-td626.html
* Closes #76
Core: Fix warning implicit conversion changes signedness

* Closes #70
Windows: Fixed bug in interface autoclaim

* Bug was introduced in f2b19e4a32c1445f4fea06beca61e8c7e7757950
* Closes #78
* Closes #80
Windows: Improve error reporting in winusbx_claim_interface()

* After the filter detection code is run, the error reported may
  have nothing to do with the original error (or report SUCCESS)
  and is unhelpful
* Also change TODO comments to default VS2012 task style
Linux: Don't set the USBFS_URB_SHORT_NOT_OK flag on the last urb

* Closes #142
Windows: Update transferred data on timeout or cancel.

* When handling aborted transfer it's possible that some data (but not
  the full buffer) was transferred.
* This change ensures that this partially transferred data is recorded
  and passed up to the caller.
Use "" instead of <> for internal includes

some libusbx include files were included with angle brackets, changed to
quotes. Needed to work better in Xcode project
Core: Fix compiler warning

libusb/io.c:1877:35: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
        timeout_ms = (tv->tv_sec * 1000) + (tv->tv_usec / 1000);
                   ~ ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

On Mac OS X tv_sec is a __darwin_time_t which is a long, not an int.
Examples: Fix compiler warning

examples/ezusb.c:251:9: warning: implicit conversion loses integer precision: 'unsigned long' to 'unsigned int' [-Wshorten-64-to-32]
                off = strtoul(buf+3, NULL, 16);
                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~
Windows: fix compiler warnings

libusb/os/poll_windows.c:176:5: warning: no previous prototype for '_fd_to_index_and_lock' [-Wmissing-prototypes]
libusb/os/poll_windows.c:197:13: warning: no previous prototype for 'create_overlapped' [-Wmissing-prototypes]
libusb/os/poll_windows.c:211:6: warning: no previous prototype for 'free_overlapped' [-Wmissing-prototypes]
libusb/os/poll_windows.c:223:6: warning: no previous prototype for 'reset_overlapped' [-Wmissing-prototypes]
libusb/os/poll_windows.c:401:6: warning: no previous prototype for '_free_index' [-Wmissing-prototypes]
Windows: remove unused function

libusb/os/poll_windows.c:223:13: warning: 'reset_overlapped' defined but not used [-Wunused-function]
Windows: fix compiler warnings

libusb/os/windows_usb.c:368:36: warning: no previous prototype for 'get_interface_details_filter' [-Wmissing-prototypes]
libusb/os/windows_usb.c:691:5: warning: no previous prototype for 'get_sub_api' [-Wmissing-prototypes]
libusb/os/windows_usb.c:1179:6: warning: no previous prototype for 'get_api_type' [-Wmissing-prototypes]