IE < 9, getAttribute returns properties set via `el.attribute = value`.
Other browsers return null for such properties that are not part of the
specs (e.g. `href`, `width`, or `title`).
This tries to normalize the behavior and prevents unwanted "expando"
properties from being returned (e.g. `inject` and other Element
TL;DR: whitelist any setProperty, and getProperty checks in the
whitelist or if the attribute is an expando (not part of the known
Fixed a spec with maxlenght property, when it needed to be maxlength.
PASSED: IE6-9; FFx 3-5, 8, 10, Opera 11, Chrome latest, Safari 5