Allow starting the server with both file_to_run and notebook_dir

file_to_run and notebook_dir would collide, with possible dictionary
ordering randomness depending on how they were passed.

With this change, the default value of notebook_dir is pulled from
file_to_run, instead of pushing the value when file_to_run is changed.
This makes it possible to specify both and have the server behave as
expected.
Allow FileContentsManager and MappingKernelManager to be used outside NotebookApp
Merge pull request #6962 from takluyver/nb-dir-and-file-to-run

Allow starting the server with both file_to_run and notebook_dir