copy nbformat.v3 to v4
update v4 schema

use jsonschema refs, no need for jsonpointer
update v4 schema mime-type expression

fixes inappropriate JSON match
source is required in all cells
raise ValidationError in v4 validate

also only load the schema once and store it in a module global
first complete pass on v4

tests passing, notebooks validating
Use Draft4 JSON Schema for v4
no longer need separate v4.compose

put it back in nbbase, and work around circular import another way
mv stream.stream > stream.name in nbformat.v4

matches message spec
test and update conversion between v3 <-> v4
log, don’t raise on validation failure in v4.convert
update nbformat.current to v4
update nbconvert to nbformat 4
strip transient values to/from nb files

orig_nbformat isn’t part of the file format
add nbformat.output_from_msg

for creating the appropriate NotebookNode from
an output message on the IOPub channel.
preserve orig_nbformat when converting 3 to 4

preserves orig_nbformat = 2 in 2->3->4
update html/js to nbformat 4
update IPython.core to nbformat 4

affects `%run` and `%notebook`

removes `%notebook --format` conversion, that's what nbconvert is for.
add nbformat spec to sphinx
s/prompt_number/execution_count in nbformat 4