Apply region&major-mode state by default
tmp -> key-and-prop
Improve comments
Add :readonly state
Add a new function to check whether mode is ignoring mode
Apply fallback if major-mode or minor-mode are ignoring mode
mykie:define-key-with-self-key: Apply ignoring mykie's function

If you set those values mykie:ignore-major-modes-for-self-insert-key and
mykie:ignore-minor-modes-for-self-insert-key, then you can ignore
mykie's function and use self-insert-key instead of it.
Note this function is available only when you set mykie's function to
self-insert-key.