Windows: Add Visual Studio 2013 solution files

* Also update gitignore
* Closes #162
Android: Build for all Android architectures

* Don't limit support to ARM only (adds MIPS support)
* Also add a workaround for a MIPS NDK linker bug
* Also add a gitignore entry required to run bootstrap.sh on OS X
* Closes #134
Android: Add support for Linux/Android platforms

* Closes #154
Linux: Remove trailing whitespace

* Closes #157
Windows: Add SetupAPI error handling

* http://msdn.microsoft.com/en-us/library/windows/hardware/ff545011.aspx
  states that SetupAPI errors must be be converted before passing it to FormatMessage().
* Use our own implementation of HRESULT_FROM_SETUPAPI to avoid defining a new function call.
* Issue and original fix suggested by Matthias Bolte
* Closes #166
Darwin: Return error code in darwin_error_str() on unknown error

* Closes #117
Darwin: Fix a SIGFPE

* GetPipeProperties() may fail when the device is unplugged if DeviceVersion is not greater than 320.
* In this case maxPacketSize will be zero and the integer division will throw a EXC_ARITHMETIC signal.
* Closes #136
Darwin: Fix format of 64-bit sessionIDs in log messages

* The sessionID value is 64-bit, so print it as such.
* Closes #153
Windows: Fix a MinGW compilation issue

* Some MinGW platforms may not have FACILITY_SETUPAPI defined
* Issue introduced with 8b46e1c088167eb86b1712765896e2f17d70d148
libusbx 1.0.18-rc1