Improvement to $.isPlainObject

Improvement to $.isPlainObject

The current isPlainObject in 1.4 tests .nodeType because IE makes dom nodes look like objects.

This has the side effect that $.isPlainObject({ nodeType: ... }); will return false when it should return true.

I did a little testing of properties on nodes in IE.

I started by testing various things on node.childNodes coming across window.NodeList. However because node.childNodes.constructor === window.NodeList will not work across iframes I looked for an alternate toString based way to detect ie dom nodes. I found out that toString does not exist on the NodeList constructor in IE, in fact not only does it not exist but typeof is "unknown" which is completely abnormal and shouldn't happen in any user created object. And after some tests, I found that the same rule applies to nodes themselves.

So I think that the obj.nodeType check in isPlainObject can be replaced with a `typeof obj.constructor.toString === "unknown"` check.