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.
added different plotting devices for R -- SVG not working perfectly -- see lm(Y~X) plot in rmagic_extension.ipynb
svg working but sometimes renders weirdly in the notebook -- haven't tracked down the bug
adding a strip of device string
fixing problems spotted in review
separated png plotting arguments, added tests using various plot arguments
moved Cairo library check to when actually setting device
fixing exception
Add option to support isolated SVGs in Rmagic.
rmagic: simplify plot arguments handling and fix regression on tests
Fix typo
Simplify svg image globbing