inga_tool: Extend the Makefile

- The Makefile now contains the full set of default recipes. Without
  them, the compile and link behaviour is implementation-defined
- It now uses pkg-config to check which compiler and linker flags are
  necessary for libftdi, libusb, libudev and popt
- It now uses pkg-config to check which libftdi version is present

However, these changes also make use of GNU Make extensions (namely
%.x targets and conditionals), making the Makefile incompatible with
plain POSIX Make, as does the use of pkg-config.

Also note that inga_tool doesn't yet compile with libftdi1.
inga_tool: Make the indenting consistent

Always use tabs for indenting instead of mixing tabs and spaces.
inga_tool: Abstract calls to libusb and libftdi, support libftdi1

This change moves all calls to libusb and libftdi into inga_usb.c,
abstracting them away and adding support for libftdi 1.x, which uses
libusb 1.x (libftdi 0.x uses libusb 0.1).

In addition, libftdi1 calls libusb_detach_kernel_driver() to detach
the ftdi_sio kernel module (which provides a /dev/ttyUSB device), so
that it can access the raw USB device. Unfortunately, there's no way to
tell libftdi1 to reattach the kernel module again, so we call
libusb_attach_kernel_driver() ourselves after we're done with libftdi.

Please note that manipulating the FTDI EEPROM is currently still
unimplemented when compiling with libftdi1.
inga_tool: Add support for FTDI EEPROM manipulation with libftdi1

Extend the USB abstraction layer to also include EEPROM manipulation.
The EEPROM API was completely changed in libftdi 1.x, so we add a mock
implementation of the new API. From inga_tool's perspective, only the
new API is visible; and if we're compiling for libftdi0, the calls are
converted.
Merge pull request #1 from DrMcCoy/inga_tool_ftdi1

:+1: