WebsiteAgent: Introduce per-node XPath evaluation in extraction.

The new extraction sub-hash key `value` holds an XPath expression which
should be applied to each node to get the result value.

The previous directives `"text": true` and `"attr": "src"` are now
written as `"value": "text()"` and `"value": "@src"`, respectively.

With this enhancement, it is now possible for this agent to perform some
basic text processing on its own by making use of XPath functions like
`normalize-space`, `substring-after` and `translate`.
#xpath evaluates any numeric return value as float, so you need to convert it to integer if you want `count(//li.item)` to be expanded to for example "5" instead of "5.0".  I'll add a comment.