Smart(er) defaults

This PR allows using functions as default values to properties, enabling smart attempts at finding the intended value. There are two examples included, one for `data-url` and one for `data-image`.

For `data-url` the `href` of an `a`-tag or a nested `a`-tag is used. When none is found the `document.location.href`.

For `data-image` the `src` of an `img`-tag or a nested `img`-tag is used. When none is found an error is generated.