handle system-wide kernelspecs

in html tets_kernelspecs_api, which can cause counts to be greater than 2
Merge pull request #6445 from minrk/kernelspecs-test

handle system-wide kernelspecs
Add test for prompt numbers
Make sure prompt numbers are actually set
Merge pull request #6449 from jhamrick/execute-preprocessor-prompt-numbers

Correctly set prompt numbers in execute preprocessor
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 both v3 and v4

no longer need jsonpointer
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
fix some validation bugs in v3

Python API had many inconsistencies with the actual spec
raise better ValidationError in validate

when oneOf would fail on a cell or output with an unhelpful error,
validate again against the target spec,
based on the output or cell type.
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