Provide a portable definition of USB_ERROR for systems that do
not use glibc.
Avoid the non-portable GNU extension "sighandler_t".
On non-glibc systems, use getopt_long() instead of getopt_long_only().
Neither is standard, but BSD systems do have getopt_long().
Merge pull request #5 from gson1703/portability

Portability fixes