Major code rewrite.
Attaching to event device instead with a lookup table.
This means better performance, but we have 3 keys that won't work for
now (solvable).
All none standard bindings won't work with XBMC, so these will need to
be mapped in keys.h