notebook id is invariant for the lifetime of the notebook server,
and is based on the *initial* name of the notebook.
- If the notebook is renamed, its UUID will not change
during this session, but it will have a new UUID in the next session.
- If a notebook has the same initial name as another previously seen,
it will get a random ID, guaranteeing no collisions.
moved from rename notebook, reused in:
- new notebook (dashboard and menu bar)
- rename notebook
- copy notebook
blacklist_re and test_notebook_name moved to utils as well,
as they are only ever used in this one dialog.