Rewrite the machinery for nested XML handlers in Rust
The C code is incorrect: the end_element() functions in the vtables don't ever get called, because of the way the code checks for nested handlers. We now have a simpler scheme in Rust. Don't free the element_name_stack by hand from the C code. Let the Rust code deal with that itself. We'll change from using a stack of element names, to a stack of XmlContext.
Showing with 167 additions and 157 deletions