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.
Using a more specific approach for managing CM focus.

I used to try and enter command mode when a cell looses focus. The
problem with that is that focusing an output area would remain in
edit mode.

Now, I bind this logic to the code mirror blur event, so that
focusing the output area enters command mode.
Delete cell only if you press "d" twice in 1 second.
HTML and JavaScript output KBM event handling.