Remove separate 'path', 'name' in Contents API

- path is full path (including name)
- name is only used for read-only convenience, and plays no role in any API
- remove 'untitled upload' (POST with content and no path)
remove copy via PUT

only copy via POST to directories
remove notebook['name'] from sessions
update frontend with path/name changes

- remove name from models
- path is full path (contains name)
rename ContentsManager.create_file->new

consistent with js API
unicode!
update save test

fix some event waiting while there
fix link-following logic in directory nav

avoid infinite recursion by recording which links have been visited
fix and test path regexes

- require leading `/`
- match empty string
- disallow consecutive `//`

This means that path_regex should be included as `/api/whatever%s`, not `/api/whatever/%s`
address review in contents service

- various docstrings, comments clarified and updated
- misc typos
- fix and test creating an untitled directory via POST
- only define `message` if there's something to say
split ContentsManager.new, add ContentsManager.new_untitled
contents.new_untitled to match Python API
Merge pull request #6809 from minrk/rm-contents-path-name

remove separate 'path' and 'name' from ContentsManager