Moved all edit logic to controller
Make edit mode explicit in controller

This makes the edit mode explicit in the controller.  It's no longer
implicit from several other factors.  Also added some functionality
tests around responding to specific keys
Removed HistoryCommand.Edit

This is originally how i envisioned edit would work.  That has changed
to being UI controlled and hence this is no longer needed
Current command now resides in history data structure

This moves the current command inside the history data structure.
Previously the current command was passed around as part of a curried
call.  This made it impossible to edit the "current" command.  Now it is
possible