outputarea.js: Wrap inline SVGs inside an iframe

When multiple inline SVGs are included in a single document,
they share the same parse tree. Therefore, style collisions and
use id collisions can occur and upset the rendering.

This patch wraps each SVG inside an individual iframe, ensuring
that SVG's declarations do not collide.

(The SVG representation is kept as XML and not converted to a binary
format, so I do not think this approach precludes the use of d3.js)

Tested on:
* Chrome Version 29.0.1547.57 Debian 7.1 (217859)
* Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130806 Firefox/17.0 Iceweasel/17.0.8

Closes #1866
SVG scoping must be explicitly enabled by the user

SVG scoping is disabled by default, to enable it the user
must call the core.display.SVG constructor with the scoped=True
keyword parameter.
Fix style and typo
SVG: scoped is passed as metadata

Instead of using a svg class to pass scope information
use notebook metadata.

Suggested by Matthias Bussonnier
Support isolated metadata tag for any content

Any content whose metadata contains an `isolated` tag will be isolated
from the rest of the document.

The current implementation wraps isolated content into an iframe.
Notebook isolated content: fix firefox extra-space issue

In Firefox, if the iframe initial height is set to 0, the reported
scrollHeight is too large. Workaround: set the initial height to 1.
Add casperjs test for isolated SVGs
Fix typo.
Preserve layout for large isolated objects
Set both height and width using css
Merge pull request #4250 from pablooliveira/wrap-svg-in-iframes

outputarea.js: Wrap inline SVGs inside an iframe