Explicitly read/write ShadowDOMPolyfill on window

Breaks when executed inside non-top level window
context.
Fix issue with canvas parameters
Add Audio and Option constructors
Merge pull request #284 from arv/webgl-fix

Fix issue with canvas parameters
must set `hasEval` to false if the Function() constructor test throws
Merge pull request #288 from Polymer/fix-hasEval

must set `hasEval` to false if the Function() constructor test throws
Add the host property to the ShadowRoot interface

https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-root-host
If parentNode is not correct check for child in childNodes
Gather nodes before removing them in collectNodes
Wrap originalRemoveChild to capture unexpected exceptions
Preserve 'extends' when the ShadowDOM polyfill patches document.register

Before this change this worked well in combination with the custom elements polyfill, however it failed with the native document.register.
Merge pull request #292 from sigmundch/patch-1

Preserve 'extends' when the ShadowDOM polyfill patches document.register
Merge pull request #291 from arv/ie-document-fragment-work-arounds

IE document fragment work arounds
Merge pull request #289 from arv/shadow-root-host-property

Add the host property to the ShadowRoot interface
Merge pull request #285 from arv/audio-and-option

Add Audio and Option constructors
Merge branch 'explicit-global' of git://github.com/timoxley/ShadowDOM into timoxley-explicit-global

Conflicts:
	src/wrappers.js
	src/wrappers/ShadowRoot.js
Fix issue with missing instance properties on canvas context classes
Fix tests for HTMLAudioElement
Merge pull request #299 from arv/fix-audio-test

Fix tests for HTMLAudioElement
Don't use native cloneNode