Adds p.break_ for explicit newlines in lib.pretty

p.break_() explicitly includes a newline while pretty printing, and maintains indentation.
A simple test is included to show this working.
Uses p.break_() when repr() is used for printing

When a newline is found in the result of repr() (using the default printer), the newline is replaced with an appropriate call to p.break_()
store default codemirror mode in only 1 place
do not include specific css in embedable one
catch if cm_config of other key undefined
cleanup Client.close

allows setting `linger` on sockets at shutdown time.
close Client sockets if connection fails

avoids runaway FDs in cases of frequent client failure.
trigger `Kernel.status_started` after websockets open

This leads to a more logical state for event watchers to expect.
change default behavior of database task storage

The previous default behavior was to create a new table (sqlite) / database (mongodb) for each Hub instance,
so that task history would not be shared by subsequent IPython sessions.

I don't think this was the right choice,
so this PR switches the default behavior to use the table / database `ipython-tasks`.
The result is that all Hub sessions in a given profile will share history by default,
which makes the benefit of the db backends clearer.

Configurable behavior remains the same, only the default is changed.
quote table name

avoids syntax errors from hyphens
Implement a better check for hidden values for %who etc.
Tweaks to interactiveshell for user_ns_hidden as dict
FIXED, nbconvert sphinx preprocessor date format string for Windows
FIX: nbconvert unicode html header characters (Win + Py2.x)
Add way to install MathJax to a particular profile
Make profile not set a default
Made profile the default install option, install_dir the explicit
simplify join
Added new option in %%cython cell magic to specify the module's name.
Add --name option in %%cython cell magic to specify the Cython module's name.