JS Configurablity Take 2

Change the way configurability works.
Config dict should be passed down to the parent class where it will be
merged with the default value and propagate to this only in the base
class.

This allow to both alter the configuration on a per instance basis, or
globaly by tempering with the class instance.

This also get rid of IPython global in some cases.
use hbox mixin instead of class

this will allow dynamic css in nbviewer like vbox-ing for low res
without JS or change in html
include hbox in outpuarea css
include vbox into .cell css definition
merge box-flex1 class into .output-area css definition
recompile css
backport If-Modified-Since fix from tornado

See facebook/tornado#713

closes #3177
Notebook actually gets and holds ename, not etype
VideoIframe from YouTubeVideo (simplified) + VimeoVideo
use much faster regexp for ansi coloring

ansispan function adapted from mmalecki/ansispan

The easiest way to see how slow the old way was is to create a very large traceback (e.g. max recursion), which bring everything to a screeching halt (even future page loads, if the output is saved).  Now a max recursion error draws in a second or two.

closes #3198
Simplify InputSplitter by stripping out input_mode distinction
Allow IPythonInputSplitter to accept cell magics containing blank lines
using named keys and format string method + renaming VideoIframe to VideoIFrame
Separate InteractiveShell.input_splitter into two instances.

* input_splitter is used to detect when a cell is complete
* input_transformer_manager transforms completed cells

Closes gh-3178
Fix test failure in IPython.lib
Merge pull request #3203 from takluyver/cell-magics-wholecell

Separate InputSplitter for transforming whole cells

This allows cell magics to include blank lines once again (closes #3178).

InteractiveShell now has two input splitters:

- `input_splitter` is used to determine when a block of input is complete, so you can use a cell magic in the terminal by leaving a blank line at the end.
- `input_transformer_manager` is used to transform whole cells, so cell magics affect the whole of their cell.

I removed the similar concept of 'input modes' for InputSplitter, because it was bound to get conflated, and it made the code rather hard to follow.
add ignored *args to HasTraits constructor

makes subclassing nicer / easier

discussed [on the list](http://mail.scipy.org/pipermail/ipython-dev/2013-April/011409.html).
Update link to extensions index
Merge pull request #3208 from benjaminfjones/patch-1

Update link to extensions index
IFrame + ScribdDocument