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