teach tree view about non-notebook files
add support and tests for uploading and saving regular files
test creating a directory with PUT
contents service review

- missed some s/notebook/file/ in docstrings
- manager doesn’t sort contents
support deleting empty directories

can’t copy directories
use contents manager to handle redirect of /notebooks -> /files

avoids 404 on /files for visiting a nonexistent notebook
updates per review

a few more notebook mentions in docstrings,
and inappropriate use of setdefault.
move `/files/` redirect to base handlers

and reuse it in /nbconvert/html/…

closes #6137
whatsnew for contents service
updates per review

- clarified docstrings and errors
- still more notebook/file renames
- configurable untitled names
- copy_from can be full path
- fix running, upload, new-tab behaviors in dashboard

Yay, review!
various upload fixes

- recognize 201 as success (dataType must not be 'json')
- support uploading non-notebook files (b64-encoded)
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