Update widget serializer/unserializer to allow custom serialization on a trait-by-trait basis.

Serializers/unserializers are given as the trait metadata keys `to_json` and `from_json`.
Give subclasses of the Instance traitlet the option of overriding the klass variable to have a default klass.

This makes it easy to construct traitlets for specific object types and default metadata.  For example, we can have a traitlet for numpy arrays that gives default values for `to_json` and `from_json`:

```python
def np_to_list(a):
    if a is not None:
        return a.tolist()
def np_from_list(a):
    if a is not None:
        return np.array(a)

class NDArray(Instance):
    klass = np.ndarray
    metadata = {'to_json': np_to_list,
                'from_json': np_from_list}
```

Then the NDArray traitlet will by default have the klass and some custom metadata.
Merge pull request #6115 from SylvainCorlay/widget-area-show

Instances of WidgetView do not trigger widget_area.show anymore.
Merge pull request #6120 from rgbkrk/no_iframe_embedding

Only allow iframe embedding on same origin by default.
remove rackcdn https workaround for mathjax cdn

cdn.mathjax.org works over https now
Merge pull request #6134 from minrk/mathjax-cdn

remove rackcdn https workaround for mathjax cdn
Merge pull request #6055 from minrk/busy-idle-always

send idle/busy on all shell messages
pin tornado to < 4 on travis js tests

Current phantom uses an old webkit
that implemented draft76 of web sockets.

Tornado 4 drops support for draft76.

This doesn’t affect any real browsers,
as far as I can tell.
Merge pull request #6143 from minrk/tornado-vs-casper-cagematch

pin tornado to < 4 on travis js tests
Add 'mistune' markdown parser as an option for markdown2html
Add highlighting of GFM code blocks with mistune
Make mistune a requirement for nbconvert
Add deps for nbconvert to HTML for 'notebook' target

Also, nbconvert no longer requires Sphinx.
Integrate pass-through of mathematical expressions with markdown rendering
Version dependency on mistune
No need to install nodejs on Travis
Add support for \begin foo \end math blocks
markdown2html test doesn't rely on pandoc
Rename mistune renderer class
mistune rendering is the default