e-xml: Add C api

Makes it easier to use with C projects (especially those that don't allow C++ code)
This is good, but I think is conflating your earlier patch for header guards.