Update git submodules on `npm install` (closes #977)
Clarify console.error test description
Add missing window.console methods
Use a real array for Node.prototype._childNodes

This change is a very big performance improvement because it avoids recalculating the "length" over and over.
Calling array methods on an real array is probably a lot faster too.
Node.prototype.childNodes still returns a live NodeList. This NodeList is lazily created to avoid defineProperty (which is very slow) during element construction
Change various API and internal methods to use _childNodes array
Use lastIndexOf instead of indexOf in Node.prototype.removeChild

The fastest method to remove all children of an element is to loop through all its childNodes in reverse,
because this avoids renumbering the array.
Using lastIndexOf makes this removing all children slightly faster: O(n) instead of O(n^2)
Use pretest, not postinstall, for submodule updates

When users install the package, there is no git stuff for them to submodule update. It's only for us developing the package.
Version 1.5.0
Update submodules on Travis