add `setup.py css` command

It just does `cd IPython/html && fab css`, but I'm tired of doing it manually.
engine ID metadata should be unicode, not bytes

fixes `TypeError: b'f5b984b0-fd8c-4873-a23e-658425c1e28a' is not JSON serializable` when an engine dies while working on a task in Python 3.

candidate for backport
Add failing test for SyntaxError display
Fix display of SyntaxError when .py file is modified.
Check for string_types instead of str
AssertPrints checks for instances of string_types
Improvements to docs formatting.
add Kernel.clear_callbacks_for_msg
clear previous callbacks on execute

avoids mixed up display of multiple executions in one output area
when a cell is resubmitted.

closes #4223
Remove clear_output timeout callback in favor of fixed height
Removed ability to clear stdout and stderr individually.
Merge pull request #4220 from takluyver/docs-shotgun-1

Various improvements to docs formatting

Clearing up some of the broken formatting in the docs, in no particular order.
avoid executing code in utils.localinterfaces at import time

moves away from global constants to utility functions.

The code is still only executed once,
but instead of at import time, it is executed at first request.
Added wait flag to clear_output.
Switch correctly to the user's default matplotlib backend after inline.

If '%matplotlib inline' was called first, we'd incorrectly revert to
inline when plain '%matplotlib' was called, instead of loading the
user's default GUI.  If the user called '%matplotlib' first (without
'inline') it worked correctly, but not in the other order.

The fix is to read the backend from the original defaults, not from
the runtime data structure.
no highlight if no language specified
Initial changes to make alias system use magics
Allow new style aliases to be stored
Remove alias code from prefilter
Alias code cleanup