Treat ; in range as Vim (base range end)

Thanks to filterfalse.
Add some comments to engine/cmds
Move engine/cmds:parse_limit() below it's last use
Rename cmds:{ parse_limit => parse_range_elem }
Merge branch 'vim-semantic-for-semicolon-in-range'

Make +/- operands after semicolon in command-line range adjust base range
end position rather than base cursor position as Vim does.

Thanks to filterfalse.