Stop special-casing comments and recognize them as tagName='#comment' instead

Requires some conditionals here and there because comment nodes don't have
.getAttribute() or .hasAttribute(). Also update docs to say Node rather than
HTMLElement where appropriate.

Change-Id: Ibf57307d65f0597089e46c0bc38023417a8e7d8a
Make ve.dm.Converter assertions actually display message

Longer term we should migrate these tests to the more common
format of an array of objects with a 'msg' key, rather than
an object of objects keyed by msg.

Before this change assertions in ve.dm.Converter tests ended
up like like "undefined: inner whitespace" and
"undefined (data hasn't changed)".

Change-Id: I9bedd8dab7918784038ae1b49b4e6a71bea54eb4
Merge "Stop special-casing comments and recognize them as tagName='#comment' instead"
Merge "Make ve.dm.Converter assertions actually display message"