backport nbformat v4 to 2.x

Check out nbformat v4 for 2.x

still to do:

- [x] basic tests for opening a v4 notebook
- [x] keep up to date with v4 API, if it changes