cleanup, always initialize complete struct when getting from xml

This has two advantages:
1. better forward compatibility, new attributes will be initialized
   even if our xml converters are not up-to-date yet.
2. simplify initialization of share pointer members
from_xml funcs don't inititialize the structs at all

Now The caller has to initialize them and actually we are always doing this
already.
from_xml funcs don't re-use member pointers
cleanup, "else if" xml children
cleanup, from_xml funcs only check XML_ELEMENT_NODE children
cleanup, for loop cosmetics
cleanup, more generic TagValueList xml converters
Merge branch 'xml_cleanup' into next

* xml_cleanup:
  cleanup, more generic TagValueList xml converters
  cleanup, for loop cosmetics
  cleanup, from_xml funcs only check XML_ELEMENT_NODE children
  cleanup, "else if" xml children
  from_xml funcs don't re-use member pointers
  from_xml funcs don't inititialize the structs at all
  cleanup, always initialize complete struct when getting from xml