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`.
Are you using the `,` here to throw away extra values?  If so, I'd suggest either of these for clarity:

```ruby
node.xpath(extraction_details['value']).first
```

or

```ruby
value, status = node.xpath(extraction_details['value'])
```

(assuming the other value is status)