add auto reset implementation

add InsertEnter as a timing for reset
implement timeout feature

forget removing a debug message

add comment
remove TODO

because it is no longer maintained
implement highlighting the target character
rename for more explicit variable name

previously, the variable names for character often confuse me.  It
sometimes means the character itself, and otherwise the number of character.
In this commit, make the latter variables' names more explicit.
e.g.
    char -> char_num
tiny fixes

- ignore some errors on matchdelete() called
reuse s:generate_pattern() and exclude omap
fix when the target character is at another line
do not preserve last id because it is useless
add doc for marking char and timeout
add tests for timeout and highlight features
Merge branch 'dev'