Support `data-*` attributes for configuration

The documentation is included, along with a few tests, which
explains the general rules for how it is parsed.