zb::xml: accept elements in any order
Unfortunately, serde-xml-rs doesn't handle nicely interleaved elements: https://github.com/RReverser/serde-xml-rs/issues/55
Implement the suggested workaround by using an enum.
That means for now we will fail to parse XML with unknown elements though.