WIP implement editor.Mode across every mode
remove newMode test variable from code
export all Modes
return pointers from all NewMode functions
revert go routine version of OnKey
Merge branch 'feature/EditorMode' into develop
Move the command reset code to m.Reset

- It is used in multiple places, so refactor to new function on
  normalMode.
OnKey using channels and EditorMode as an interface

- need some way of dealing with streams of commands comming in that lets
  us assemble composite commands - seperating out the implementation of
  parsing what a event results in helps going that way
- Reset then needs to be used across multiple modes, but it means
  something different in each - so we introduce the EditorMode interface

- NOTE: broken atm
WIP implement editor.Mode across every mode
remove newMode test variable from code
export all Modes
return pointers from all NewMode functions
revert go routine version of OnKey
Run reset command if esc is pressed
Merge branch 'master' into develop

Conflicts:
	mode/normal.go
end command mode on backspace on empty command