shadow-dom: Handle vendor prefixes in a more sophisticated way.

This change adds a functionality to testcommon.js that enables the tests to
handle vendor prefixes without manual intervention. When testcommon.js is
loaded, it automatically adds unprefixed methods and attributes if necessary.

This change obsoletes the existing utility functions related to vendor
prefixes, but they cannot be removed at this moment, because there are many
tests using them. These functions will be removed eventually.
shadow-dom: Rework two tests that check createShadowRoot()'s behavior.

As testcommon.js takes care of vendor prefixes, we can now simplify these tests
by using standard DOM methods.

The old test-001.html is now renamed to elements-001.html, and test-002.html
has become non-element-nodes-001.html to better reflect the test content.

The code of elements-001.html has become drastically simple, because of
the use of HTML5_ELEMENT_NAMES from testcommon.js and generate_tests() from
testharness.js.

The content of non-element-nodes-001.html has been sorted out, too. It also
adds new tests that check whether an appropriate exception is thrown when
createShadowRoot() is called from a non-element node (as defined in section
10.2.2 of the specification).

These tests were moved to the directory for section 10.2.2, because there
seems no reference in section 4 about the requirements that the tests try to
validate.