This adds the following:
- A character map driver API, which maps Unicode code points to behavior
bindings.
- A zmk,character-map driver which implements this API. This driver is
designed for ROM efficiency, so it sends every value defined in the
map to one behavior and passes any code point not in the map through
to another. (A more flexible implementation that allows for a unique
behavior binding per character could be added later if necessary.)
- A zmk,send-string behavior, which users can define and bind to their
keymaps to send strings.
- A zmk_send_string() function, which queues the necessary behaviors
to type a UTF-8 string. This is separated from the send string
behavior since it could be used for other features such as Unicode
key sequences, behaviors that print dynamic messages, etc.