feat: add commands save and restore states
fix: comands uninitialised memory access
refactor: split pheripherals to separate library
feat: make rotation encoders more natural by changing direction
fix: incorrect command handling for rotation encoders
feat: add zooming to cursor
fix: commands execution out of bounds
feat: add option to run on x86 computer with sdl
feat: add input handling functions