imrsh_move: handle UTF-8 properly

Several other functions remain to be addressed
Don't append repeated commands to history
build: add subproject fallback for mrsh dependency

Makes it easier to debug both imrsh and mrsh at the same time.
Implement simple cycling through history
history: use doubly linked list
Write command history to file
add c-l (clear)
README.md: add ticket tracker link
add imrsh_swap
Call interactive_finish after interactive_next

This resets all of our terminal crap so that any child programs can do
their thing with a sane terminal.
add M-f / C-Right bindings
add M-b / C-Left bindings
add imrsh_delete_all
add imrsh_backspace_all
add imrsh_backspace_word
README.md: add rebindable keys to goals
add imrsh_delete
We will not be using /dev/tty

This removes the comment which wondered if we might.
Set pens explicitly before use
Fix backspace and insert when cursor != len
imrsh_backspace: exit on empty input