device: Some minor performance improvements.

- Struct.unpack_from is more efficient
- Using a class with __slots__ is faster than a
  named tuple when accessing attributes
Add a --ignored-buttons option.