WIP: nbformat v4

(based on #6044)

Still quite a bit to do, but the implemented parts of v4 are working pretty well. I did find and fix some things while testing the validation. Both v3 and v4 have a Draft 4 jsonschema, and use the standard jsonschema format for references, so jsonpointer is no longer used.

TODO:

- [ ] add convert 3<->4
- [ ] make v4 current