Fix some error handling bugs.

* For exceptions, read the message field instead of msg.
  XPathSyntaxError has msg, but not XPathEvalError.
  message works for both.
* XPathEvalErrors happen at query time, so try-catch there too.
  (Introduce an XPathQuery wrapper that wraps exceptions here too.)
  This works fine for the /benchmark view, but it's trickier for the
  /list view because it doesn't look like exceptions in worker
  processes are caught. Will open an issue.