Fix XPathFilter serialize implementation

The XPathFilter was ignoring the text node when using the serialize
method. Also changed from a Set to a List when reading all the values
matching the XPath expression. This is so the order of the values is
the same as the DOM. We could use a LinkedHashSet if we really want
to remove the duplicate values but I'm not sure we do.