Add format string support to RETURN_ERROR() and RETURN_FAIL().
Remove duplicated include.
Remove useless declaration.
Simplify Mac OS implementation of sp_list_ports().
Remove the udev dependency and parse the /sys hierarchy instead.
Add new APIs to get some USB descriptor details for USB serial ports.
Tidy up and split most OS-specific code to separate files.
Check bus:address and vid:pid validity.
Ignore build leftovers.
Fix missing variable on macosx.
Move list_ports() implementations to OS-specific files.
Fix build for platforms without enumeration & port metadata support.
Introduce SP_API/SP_PRIV to mark visibility of functions.
Don't use readlinkat if it does not exist

This fixes bug #377.
Avoid use of struct serial_struct on systems which don't have it (Android)

This fixes bug #376.
serialport.c: Fix an 'unused variable' compiler warning.
configure.ac: MinGW build fix (setting WINVER=0x0501).

Without this the build fails with:

  windows.c:40:43: error: 'WC_NO_BEST_FIT_CHARS' undeclared (first use in
  this function)
windows.c: Define a bunch of stuff that's not in MinGW, yet.

Without these defineѕ the build fails with various (many) compile errors.
windows.c: Remove MinGW workarounds, require MinGW-w64 instead.

We're switching from MinGW (i686-pc-mingw32.static in MXE)...

  http://mingw.org/

...to MinGW-w64 (i686-w64-mingw32.static in MXE):

  http://mingw-w64.sourceforge.net/

The latter is a fork which nowadays seems to be more active and also to
have a more complete set of win32 API headers and libs.

History:
http://sourceforge.net/p/mingw-w64/wiki2/History/

This closes bug #393.
configure.ac: We no longer need to set WINVER explicitly.

Since we now require MinGW-w64, we no longer have to set WINVER manually,
since MinGW-w64 defaults to WINVER=0x0502 (which corresponds to
Windows Server 2003 SP1 / Windows XP SP2 apparently, which is fine for us).