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.
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.
The 'name' argument to the %%cython cell magic is no longer a list.
Added test_cython_name.
fixes #4039.

Issues is that $(selector).val() return the associated text if no data
is present (hence one cannot associate explicitely an option to
"undefined")

fix in doc and example.
Unify exit status from system_raw and system_piped
Add test for exit status from system_piped
Test process exit codes with terminating signal
catch unicode error listing profiles

there can be garbage files on the filesystem, and we shouldn't be bothered by them.
Added mathletters and longtable to latex_base
change default timeout to 10s from infinite in parallel tests

avoids hangs with apply_sync in tests
adjust Scheduler timeout logic

Timeout starts when task submission is attempted.
That is, it starts *each time* in resubmit / retry cases.

Avoids issues of timeout firing only once while a task is pending,
when it might come back and be retried after the timeout has fired.
test very short timeouts

which should be guaranteed to fire while the task is pending
set minimum engines in a few tests
Merge branch 'master' of https://github.com/ipython/ipython into cython-magic-name-argument
Using py3compat.unicode_to_str instead of str.
Merge pull request #4269 from jakobgager/latex_ucs

Add mathletters option and longtable package to latex_base.tplx
Merge pull request #4131 from rossant/cython-magic-name-argument

Add module's name argument in %%cython magic

This new option lets the user specify an explicit module name for its Cython cell rather than letting IPython generating a random name automatically. With this option, one can reuse a function defined in one %%cython cell magic in another %%cython cell magic, by doing an import of the module corresponding to the first cell magic.
add js_extensions_path

serves files in `IPYTHONDIR/js_extensions` at `/js_extensions`.

This is a location for users / devs to drop-in frontend customization as js modules, css, etc.

The model is very much like the extensions dir (hence the name) - it's a location made available, but not loaded by default. You can load things from there with require, etc.

It's a configurable search path, just like static. This way we can define a system-wide location at a later point (/usr/share/ipython/js_extensions?) and still have user installs.