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
Add Origin Checking.
Get rid of exc_info as there isn't an exception.
Indicate Py3 vs. Py2 codepath.
Use *args, **kwargs, log.warn
Performing check only on open.
Verify that headers are set, explicitly
Name change to same_origin
s/==/is/