Add None as a widget visible value to allow for visiblity: hidden

Now, visible can have three values:
  * True - show the widget
  * False - hide the widget and collapse the empty space
  * None - hide the widget and show the empty space
use IOLoop.current in a few places

better allow notebook server to run in a thread
run test server in thread

instead of subprocess
Update viewlists to store a list of promises for views
Default ensure_ascii to False when writing notebook JSON

Alternative to gh-7064
Fix writing non-ascii notebooks in Python 2

Don't assume that json gives us str
ContentsManager type kwarg to match model key

remove `_` suffix, making it consistent with models,
REST API, etc.
Add LESS that enables meta-p printing
invoke css
Missing return

Thanks to @jdfreder for catching this in review!
Merge pull request #7143 from jasongrout/viewlist-promises

Update viewlists to store a list of promises for views
Merge pull request #7149 from minrk/thread-nb

run test notebook server in thread
Git hooks need to use invoke, not fab
Merge pull request #7159 from takluyver/hooks-invoke

Git hooks need to use invoke, not fab
remove references to defunct layout_manager in ToolBar
Avoid using important
invoke css
Move header styles into base less
invoke css
Merge pull request #7097 from jasongrout/widget-visibility

Expand the semantics of the widget visible attribute to allow for visibility: hidden