input/Button: Added button abstraction for input controllers.
WIP on adding _support_ for buttons to EvDevController
input/{Axis,EvDevController}: added support for relative axes

For EvDevController, this was accomplished by switching to using
libevdev, rather than using the low-level Linux input interface directly.
input/Controller: fixed the doc-comment
input/Axis: added support for emulating relative/absolute axis types
crisp-input, not the program that uses it, should depend on libevdev.
Merge branch 'master' into buttons
cmake/RoboCRISPConfig.cmake: add libevdev's include dirs if it's avail.
Some cleanups to the various CMakeLists.txt files
input/Controller: finished Button impl., added `get_name` for axes+buttons

Adding the `get_name` part required that we enable use of polymorphism
with buttons and axes (which are stored in the common Controller class)
so that derived axis/button types can override the method.

Unfortunately, that made the ArrayAccessor type
(i.e. DereferencedArrayAccessor) used in `Controller` somewhat...
sketchy.
input/Button.cc: removed some useless whitespace
Merge branch 'buttons'