Backport PR #4064: Store default codemirror mode in only 1 place

All is in title.
The default_mode value was not used in any other places.
Backport PR #4065: do not include specific css in embedable one

step towards fixing #4063 (not complete)
Backport PR #4074: close Client sockets if connection fails

avoids runaway FDs in cases of frequent client failure.

also cleanup Client.close a little bit, allowing setting `linger` on sockets at shutdown time,
which is helpful for preventing FD growth on connection failure.

Should be considered for backport to 1.1.
Backport PR #4092: nbconvert: Fix for unicode html headers, Windows + Python 2.x

Closes #3818
Backport PR #4104: Add way to install MathJax to a particular profile

Made a quick handler to install MathJax to a specified profile (rather than either only accepting default or requiring knowledge of a full path).

Also cleaned up some grammar.
Backport PR #4144: help_end transformer shouldn't pick up ? in multiline string

The help_end() transformer was already tokenizing the line to determine whether the ? was in a comment, so I just extended this to check for multi-line strings as well.

Possible for backporting to 1.1, but it's low priority, and this code is fairly sensitive, so it doesn't have to be.

Closes gh-4134
Backport PR #4143: update example custom.js

fix event for at-page-load events use font-awesome icon, not jquery-ui

closes #3998
Backport PR #4158: generate choices for `--gui` configurable from real mapping

typo prevented `--gui tk` from working, even though it is supported. Should
prevent similar bugs in the future.

closes #4156

should be backported to 1.1
Backport PR #4159: don't split `.cell` and `div.cell` CSS

`.cell` matches non-IPython things that it shouldn't (inside highlighted code), everything `.cell` should match in IPython is a div.

I know we have bigger CSS scoping issues to deal with, but this is an easy fix for an obvious problem.

backport for 1.1