Refactoring - Use CharNavMotion enum instead of State.

This allows us to combine char navigation with other commands such as delete (DeleteForwardToChar), select (SelectForwardToChar) etc.