[WIP] remove separate 'path' and 'name' from ContentsManager

Opening now, so the plan is clear, but it will need to be rebased and finished after #6045 and #6783, which touch the same code. We should notify anyone who is already writing ContentsManagers that target 3.0.

Changes:

- ContentsManager APIs will only use a single 'path' argument, which is the full path
- `path` in the Contents model will become the full path, rather than the parent directory
- remove "untitled upload" via POST to a directory (only upload via PUT)
- remove copy via PUT(only POST)
Actually, thinking about this some more, this is problematic with the Google contents manager - because the server doesn't know whether a given file or directory exists, it currently uses a shim ContentsManager that just returns True for any 'exists' check, so that pages won't 404. In this case, since we check `file_exists` before `dir_exists`, it would redirect to the notebook page even when it shouldn't.

Checking `dir_exists` first would fix this, but I think we should probably take the redirect out of this handler altogether. If you ask for `/tree/something`, I think it's valid for it to complain if that's not a directory.