Use the more powerful signatures module to display function argument signatures. In particular this works better for functions wrapped with functools.wraps (at least on Python >= 3.4)
Allow widget views to be loaded from require modules

This required refactoring things that create widget views to use
callbacks instead of return values.
Make changes suggested by @jdfreder
Fix logic
Put callbacks for create_view and create_child_view in options

And add errback support
Clean up some JS code
Remove superfluous error checking
Start describing how IPython works
Start describing notebooks for IPython architecture doc
Add about dialog in Notebook Help Menu.

This allow to get info on version of IPython when running remotely.
The about dialog also send a kernel info request and display the banner
which is useful for non-python kernel that don't match IPython version
Support echoing output from other clients

in the zmq console

Can result in outputs like:

```
In [1]: 1
[remote]In [1]: 1
[remote]Out[1]: 1
[remote]In [2]: 3
[remote]Out[2]: 3
Out[3]: 1
```

Note that there will be inconsistencies in prompt numbers
because some execution may take place after the in-prompt is drawn.
add ConsoleWidget.include_other_output

matches zmq console. Doesn't include `[remote] ` prefix,
because true async output makes it less important.
highlight input from other front ends

in qtconsole
Describe nbconvert in architecture doc
Add diagram of notebook components
Implement a couple of suggestions from @jhamrick
Brief description of IPython.parallel
Mention the term REPL
Refer to octave_kernel, not Oct2Py
Replace stick figure with smiley