Add support for the `data-disable` attribute.

This gives the same behavior 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.
Tidy up `data-disable-with` test source a bit.