* ivimp-1: refactor for generic handling of keys
* Get CAPS and SPACE code as close to each other as possible.
* Remove `caps_is_esc` and use `caps_tapped_should_emit` instead
* Use `continue` keyword after successfully handling the event (work towards daisy chaining)
* wip: started moving to classes
* feat: Now additional mappings can be easily added
* Refactored to OOP C++ classes
* Each key handles its own processing.. these types available:
* tap and hold for layer mappings
* tap and hold for modifier key
* feat: extend to cover mouse buttons (not impl)
* fix: combos need to be emitted with structs
* fix: combos emitting doesn't work with typedef Cpp-like constructs
* fix: enable adding other layer keys except KEY_SPACE (bug on checking `input->code == KEY_SPACE` hardcoded)
* feat: helper function for building events
* chore: rename `event` to `Event`, cleanup cerr output
* fix: layer+modifier+input
* you can try it out in firefox in input box, try space+caps+h/l to move around words - if ctrl+h for history is emitted, it's a fail
* chore: Update README.md - configurability