Refactor the CommandMarginController test
First edit fixes steps
Really simple unit test now working

Got a really simple unit test working for command line editing.  There
is a ton more work left here but now at least I have a pattern to hang
the rest off of
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
Moved history session into a stateful type

The stateful type is needed so that we can modify it later due to a
command line edit.  It is the backing of an incremental search operation
and hence must be modifiable
Formalize the concept of IHistorySession
Basic editing of incremental search is working

More work is left but the basic scenarios outlined in #1100 are now
working.  Lots of small changes need to be made to the implementation to
make it more robust but the infrastructure is now in place
Selection + edits now works properly

Selection event will initiate a command line edit
Fixed deletion of the prefix char

Can no longer delete the char which prefixes the command (:, / and ?).
Fixed some TODO issues in the command line edit
More tests and bug fixes

Main issue fixed is the controller wasn't marking the WPF keyboard
events as handled when they were processed by VsVim.  This caused the
events to bubble up to the editor and be run twice
Mouse click now initiates edit
Merge remote-tracking branch 'origin/master' into fixes-edit

Conflicts:
	Test/VimWpfTest/CommandMarginControllerTest.cs
Cleaned up the integration, all tests now passing
Merge pull request #1154 from jaredpar/fixes-edit

Fixes edit