Moved various rules around for the XML lexer.

This moves the element related rules to the element_head machine (where they
belong). This in turn makes it possible to lex ">" as a text node, previously
this was impossible.
Replaced fcall/fret with fnext in the XML lexer.

With the rules being cleaned up/moved around a bit we can drop the use of
fcall/fret. This saves the need of having to maintain a stack (position).
Removed remaining fhold call in the XML lexer.

There's no particular need any more for this fhold call so we're getting rid of
it.
Cleaned up documentation of the XML lexer.
Use a method for getting input in the XML lexer.

Instead of directly accessing the `data` instance variable the C/Java code now
uses the method `read_data`. This is part of one of the various steps required
to allow Oga to read data from IO like instances. It also means I can freely
change the name of the instance variable without also having to change the
C/Java code.