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`.
On second thought, if a node set is returned the result should include all nodes so `text()` expands to all texts concatenated.  I'll fix it.