fixup positional arg parsing in notebook app

- `ipnb .` triggers override of sub-config, even when the parent isn't changed
- `ipnb /path/nb.ipynb` sets notebook_dir to `/path`
write config instead of direct assignment from the command-line

Gross.
Merge pull request #5221 from jdfreder/ctuple

Change widget children List to Tuple.
get _ipython_display_ method safely

use the same method we use for `_repr_foo_`
DOC : modified docs is HasTraits.traits and HasTraits.class_traits

 - change list -> dict to reflect what the code does
 - clarified how kwargs work (instead of just referencing enthought.traits).
 - fix classes -> class' spelling
Merge pull request #5234 from tacaswell/doc_hastraits.traits

DOC : modified docs is HasTraits.traits and HasTraits.class_traits
Merge pull request #5229 from minrk/safe-get-ipdisplay

get _ipython_display_ method safely
Merge pull request #5216 from minrk/notebook-dir-cli

fixup positional arg handling in notebook app
jshint
DEBUG

Added lots of log calls and a couple small 'fixes' (attempts)
Fixed lots of bugs

Half overhaul of notebook focus events...
Use is_focused for element kbman removal event
Added cell unfocus event canceller API
Fixed rebase problems
Post in person review

Removed logic for reverse ordered events
Removed almost all of the log statements
Removed list for should unfocus callbacks
Removed all the logic in focus_editor
Only call focus_editor if the keyboard was used to enter edit mode
s/unfocus/blur
Removed change that is no longer needed
Standardized comments and removed last logs
Moved edit_mode canceling logic back into cell.
Always refresh the CM editor upon TextCell unrender.