Use shadow DOM instead of iframes to isolate CSS.

This ends up simpler because we don't have to recreate an entire document
inside each clip, and deal with importing nodes between documents, etc.