Refactor the do_diff and manual child view lists into a separate ViewList object
allow unrecognized outputs and cell types in notebooks from the future

in nbformat schema / validation
Handle unrecognized outputs and cells from the future
Make error messages more consistent
Make state_change initialization more conventional
Missing semicolon
Make a copy of the input list so that changes to the children list don't automagically change our reference list
tweak documentation for viewlists
fix loading of language name from kernel_info

language is langinfo.name, not langinfo.language

fixes highlighting for IJulia kernels
move language name, version into language_info

in kernel_info_reply

adds adaptation of language info to msgspec adapter
Implement view logic in selection containers.
Return the viewlist from the update promise so that you can use it immediately.

The pattern is:

viewlist.update(new_list).then(function(new_view_list) {
   ...
})
Do something about do_diff being used for the class stuff in widgets
At least log an error if there is no create or remove defined.

We might just remove this...
add language_info to nbformat doc and spec
update kernel_info_reply test
validate codemirror_mode
Merge pull request #6 from jdfreder/viewlists

Implement view logic in selection containers.
Merge branch 'viewlists' of https://github.com/jasongrout/ipython into viewlists
reimplement the add/remove class logic to not use do_diff and remove do_diff