add pickleutil.PICKLE_PROTOCOL

instead of hardcoding `-1`.

default to DEFAULT_PROTOCOL if defined (Python 3.4), and HIGHEST_PROTOCOL otherwise.

Matches dill behavior
fix stream output created by raw_input

was using incorrect 'name', when it should have been 'stream',
creating invalid content in notebook documents.
fix a couple of invalid notebooks

found via validation in #6045
Merge pull request #6047 from minrk/invalid-notebooks

fix a couple of invalid notebooks
Merge pull request #6044 from minrk/core.log

add IPython.utils.log.get_logger
Merge pull request #6046 from minrk/raw-input-invalid

fix stream output created by raw_input
Merge pull request #6029 from minrk/dumps-protocol

add pickleutil.PICKLE_PROTOCOL
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