Allow InputTransformers to raise SyntaxErrors

This is a relatively trivial modification of the IPython main loop to
catch a possible SyntaxError and print it instead of
quitting. Doctesting this change is somewhat tricky since we actually
need to run the main TerminalInteractiveShell.interact() loop, and is
done through a subprocess and piping in a testcase.
Also catch SyntaxErrors from InputTransformers in run_cell()

The run_cell() method is not used in the IPython terminal, so there
are two code paths where the SyntaxError needs to be caught.  Also,
this commit moves the terminal test to IPython/terminal/test/ instead
of IPython/app/test. I've checked that this works in the terminal, the
Qt console, and the html notebook.
Refactor run_cell for clarity.
Don't clear input if InputTransformer raises SyntaxError.
Mechanism for testing terminal interact loop in-process.

While this is complex, I much prefer it to starting a separate process
and piping commands in.
Protect Qt console against SyntaxError from input transformers.
Document various QtConsole embedding approaches.

Also added loading of default config to the in-process embedding example.
Correct the explanations for embedding.
Revert config-loading change in embedding example.
Clarify embedding in IPython; mention 4th method.
Simplify IPythonInputSplitter API
Catch transformer syntax errors in zmq terminal console
Deal with ansi escape codes when nbconverting to latex

Correctly deals with "reset" codes and short codes.  Interprets blinking
style as bold.
Added widget output area
Add widget subarea style
Added dependencies to page.html template and added widget.js to notebook.html
Added widget.js
Added widget.py
Added widjet.js
Other commit actually added notebook.js changes
Fixed widget.js and notebook.js so IPython.notebook.widget_manager is created.