Public server firewall configuration

Added section on firewall configuration.  This should prevent users (like me) from struggling
to figure out why their servers aren't executing code.
Fixed port range

Actual port range for ZMQ is 49152 through 65535.  Also fixed some grammar/spelling issues.
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
Remove comparisons in traitlet links
Some cleanup unused code and missig use-strict
update to use event
some extra comma/semicolon cleanup
Merge pull request #6748 from Carreau/cleanup-nb

Some cleanup unused code and missing use-strict
Merge pull request #6989 from SylvainCorlay/safe_link

Remove comparisons in traitlet links and directional links
Merge pull request #6962 from takluyver/nb-dir-and-file-to-run

Allow starting the server with both file_to_run and notebook_dir
handle various permission failures

- turn various EPERM, EACCES errors into 403
- add `writable` bool field to contents models
- if a notebook is not `writable`, save is disabled
s/open_w/atomic_writing/
Merge pull request #6903 from minrk/writable

handle various permission failures
Merge pull request #6967 from regdoug/document-server-ports

Public server firewall configuration
use Jupyter logo in the notebook header

and favicon
Merge pull request #7004 from minrk/jupyter-logo

use Jupyter logo in the notebook header