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
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
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.
no highlight if no language specified
Split out iptestcontroller to control test process.
Start refactoring test machinery
Fix cleanup of test controller
Improve test output
Allow xunit and coverage output
Better coverage reporting
Fix debugger doctest
Fix travis iptest call
cd to /tmp in Travis for tests
Also show which test groups didn't run