Converting some Blink tests over & tightening upgrade logic

I'm working on using the Polymer polyfills for Dart when compiled to JS and we're using a number of tests from Blink. These tests picked up a number of differences which appear straightforward enough to be covered by the polyfill.

Not quite sure what level of adherence to the spec the goal is for the polyfill, many of the issues were around negative testing.

These changes are primarily to get the polyfill to pass:
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-type-extensions.html

Though I left off the createElementNS tests.