Support modifying the DOM structure in link function of a directive

Support modifying the DOM structure in the post link function of a directive by creating a defensive copy of the node list, as opposed to a live DOM list.
This is useful for directives to actually replace their entire DOM fragment, e.g. with the HTML fragment generated by a 3rd party component (Closure, Bootstrap ...). Closure doesn't support attaching to an existing DOM fragment easily (decorate always recursively walks the tree, instantiating additional components and performing unwanted DOM changes).
The workaround is to have Closure .renderSibling() its component and then move the content that's controlled by Angular into the component. To achieve that, Angular must support linking functions changing the DOM, which this patch implements.
Also fix the indentation of the compileNodes function (was one too little).