Go skeleton for drivers
Adds listing and opening of usb device
[WIP] Adding protocol in common header
Puts all communication related definition in a separate header file
Switches to C++

Go need a go.usb
First skeleton to have a nice Application wrapper
Adds Gamepad class for Gamepad abstraction
Adds common System error class (imported from biorob-cpp
Replaces output to stderr by logging
Puts library RAII wrapper
Disable ncurses and debug output to stderr
Implements Gamepad Listing and IF checking
Makes Darwin workaround platform specific

Due to this upstream bug ( http://www.libusb.org/ticket/171 )
libusb_get_active_config_descriptor() segfault if the device is not
libusb_open before. This patch address this issue for OS X only, and
let the device in a closed state after construction (like other
platforms).
Implements Communication interface
Try to fetch some data from the device