Refactored errors into a unified struct

- This new struct will allow for multiple errors to be reported,
  while returning some found value.
- The `XmlResult` is returned from most XmlLexer and all method that read
  will return it from now on.
Add NameToken; rename read_until to read_until_fn
Various fixes