Improve XPath error handling.

* Catch lxml.etree.XPathError, not just XPathSyntaxError
* Keep bad query in search bar so the user can edit it
Add Benchmark.__getattr__ that falls back to data