Remplace shared_ptr<> by raw pointer or unique_ptr<> where approriate
Controller is now a base class

Concrete controllers derive from it; right now there is
EvController (evdev) and VirtualController (uinput) on Linux.
Fix stupid Socket bug
Remove Controller serial() and id()
dispatchEvent method returns a bool instead of void

Ignored for now, but Monitor will later on use this to
disable slots who return false (disconnected socket, etc.).
Controller::~Controller() was not virtual (fix leak)
Massive Control system changes

ConfigController is factorized out of Controller and contains
available buttons/axes (using bitsets). Controller::config() accesses
the current configuration.

VirtualController's constructor takes a ConfigController to set
uinput parameters. Its implementation is completed and now works.

Besides, Mapping gets a virtual abstract config() methods. It is
supposed to report the needed controller configuration for the mapping.
LuaMapping automatically computes it using information reported by
Triggers.

main.cc is adjusted for these various changes; each detected controller
induces the creation of an associated VirtualController. The two are
connected though a Mapping (the default mapping for now).
Change Mapping to inherit Controller