Automatically detect property/attribute for HTMLDOMPropertyConfig

Proper implementation of #1512

It does not get rid of `MUST_USE_PROPERTY` (see #2140) and `MUST_USE_ATTRIBUTE` because I'm not 100% sure if we might want to use it or not, I assume there's no need for it.

I also removed a test that I'm not sure what to do about. It relied on really hacky behavior and I don't really see a simple way of keeping it alive (not really familiar with testing), but please shout if you think otherwise.

This is beneficial for a lot of reasons, one being that we ensure DOM attributes always reflect the intended value. `MUST_USE_PROPERTY` was previously used for some attributes not supported by all browsers, which when updated would just add a custom property to the node object rather than the intended attribute.

Half-related: #1848 and #1657
@zpao Last I checked, `document.createElement` is crazy fast, even on IE8, we're talking 100K+/s unless my memory fails me. We talked about caching nodes for `getDefaultForProperty` but cancelled that because it was just too damn fast already.

I don't mind caching, but I really *really* doubt the cost of this can be measured at all unless there is thrasing involved. If that is, then it could probably be avoided by simply keeping a reference to the last element which should provide sufficient caching. Your call :)