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_()
Use default OS shell to run system commands

Instead of using os.system which uses /bin/sh, this uses subprocess.call (the replacement of os.system) to run the command using the default shell of the OS. With this, one can use more advanced commands for bash, zsh, ksh, ...

I do not have a win32 system to test this modification, so maybe line 2236 can also be changed like 2239.
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
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.
Use default OS shell to run system commands

Instead of using os.system which uses /bin/sh, this uses subprocess.call (the replacement of os.system) to run the command using the default shell of the OS. With this, one can use more advanced commands for bash, zsh, ksh, ...

I also edited the docstring, added comments and fixed the handling of return codes.
don't 'restore_bytes' in from_JSON

it makes no sense to turn base64-encoded unicode strings into base64-encoded byte strings.  I can't think why we do this, but we should be very careful about testing before merging this fix.

fixes the issue tested in #4036.
update test_extract_output
use cast_unicode in nbformat
test that PNG / JPEG output data are unicode
Test no incorrect 'data:image/png;base64,b' in html files.
stonebig's test shouldn't fail anymore
note that restore_bytes is never used
Fix citation2latex for Python 3
Fix pylabtools test for Python 3
move kernel-test utilities to kernel.tests.utils

context managers and tools for starting kernels,
and sharing a *single* global kernel for many tests.

reduce the number of kernels started for IPython.kernel tests,
which should save some time.
add missing `now` to MKM.restart