feat($compile): support transcluding SVG nodes when there is no root <svg> node

This CL is a work in progress, and is not meant to be committed in this state.
=============================================================

Due to https://github.com/angular/angular.js/commit/f0e12ea7fea853192e4eead00b40d6041c5f914a, it is now possible to have a directive whose template content is SVG.

However, the following issue arises:

A template like

```html
<replaces-with-svg-and-transcludes>
  <g>
    <circle r=50 cx=0 cy=0 />
    <text>My circle!</text>
  </g>
</replaces-with-svg-and-transcludes>
```

Would not work as expected, due to the group, circle and text nodes being
parsed as HTMLUnknownElements, for not being parsed in an SVG context.

This change enables transcluded SVG content to work when parsed as non-HTML
content, with the cost of linking the transcluded elements again.

Fixes #7383