Added XmlDoc to parser

- Added XmlDoc is the return type of parser, which represents parsed
  structure of an XML document
- Parser now returns XmlDoc to instead of a ~str
- Fixed signature of Parser to support chaining of methods on construction
Removed the old Node trait

- Node trait is unnecessary, it has been replaced with an enumeration
Added parser support for reading ReaderUtil

- New method deals with ReaderUtil to allow parsing of Readers
Added next function to Parser

- Idea is that this parser will behave somewhat like an iterator.
  It can be used to create a DOM of the XML file by using parse* methods.
  Or it can read a node by node by calling next until it reaches an empty
  node