Bugfix/attribute handling of empty namespace

This is the proposed fix for issue #721. A few notes:

1. I've introduced a whatwg suite meant to test behavior which goes beyond DOM levels 1, 2, 3, (4?).

2. Attributes are now held by an ``AttributesList`` class that implements the ``NamedNodeMap`` interface but does not derive from the class of the same name.

3. It would be worth having a second pair of eyes look at this.