make the various manager classes in the notebook app configurable

like NotebookManager already was

I think this closes #5468, allowing a custom KernelManager to break the separation of KernelManager from NotebookManager.