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
Adds claiming of the interface
Reports when a non-trivial packet is received
Solves a bug were data transfer was not correctly handled
Changes EP Addresses to match one of LUFA's
wip
Strips all bulk interface  away
Updates the communication protocol
Recompiles with joystick interface only
Makes communication over control EP