NodeList; fixes #561.

NodeList is now always a NodeList, and never a NodeArray. It never gets array methods, for example. All of its internal methods have been underscore-prefixed. It also got a `constructor` property.

This broke #400 again, but this time the cause is #465.
Fix #465: return `null` from `getAttribute` when the attribute isn't present.

Full test suite needs to be incorporated: http://w3c-test.org/webapps/DOMCore/tests/submissions/Ms2ger/attributes.html but for now we just hack the existing ones.