Add support for the `data-disable` attribute.

This is a spike for what was proposed on #329.

This gives the same behaviour as the `data-disable-with` attribute, but instead of using a replacement String from the `data-disable-with` attribute the disabled state will use the origin text/value of the element. Since there is a lot of shared behaviour between `data-disable` and `data-disabled-with` I duplicated the test case so we can test the same stuff for both attributes.