Starting work on select/focus logic.
Adding new logic to cells.
More work on the dual mode UX.
Semi working version of basic dual mode UX.

As of this point there are lots of things that don't work, but
most of the basic dual mode interactions do work fine.
Don't bind notebook keyboard events to $(document).

Keyboard events were previously bound to $(document), which
caused problems with our command mode not allowing other
focused elements (dialogs, etc.) to manage their own keyboard
events. We now bind to the notebook element.
Binding to notebook div not document.
Removing manual focusing of notebook div.
Adding keyboard manager logic.

This is currently very broken.
Lots of updates and changes.

* Cleaning up the code mirror event handlers.
* Adding logic to prevent calling Notebook.command_mode on cell
  focusout.
* Fixing bugs.
Code comments and minor fixes.
Removing KBN null mode and replacing with enable/disable.
Adding missing enable/disable methods.
Moving a cell focuses it after the move.

This way if you move a cell a long way, the noteobook div will
scroll with you.
Split cell keyboard shortcut wired up. Merge markdown adds 2nd \n.
Add + for merge cell below and carefully manage split cell state.
Carefully manage rendered state in merge cell.
Fixing select when inserting cell using menu.
Fixing bug in KeyboardManager.enable/disable.
Changing a heading cell level should enter edit mode and set dirty
Fixing delete/undelete logic.