Remove depth from XmlLexer

- Remove depth from lexer. Depth isn't lexer concer, so it
  was removed from from XmlLexer.
Changed Character enum to normalize new lines

- Character enum no longer has a NewLine option,
  its replaced with Char('\n'), which is in line
  with normalization rules.
Add test for processing Whitespace tokens
Add implementation for WhiteSpace token

- New function read_until() that reads character until the
  function returns false.