ENH: Add notebook reference when creating Cells. Don't like touch
IPython.notebook to get notebook reference.
Refactored handle_codemirror_keyevent to make it easier to monkeypatch.
Also return null for cases where I want to defer control