e-xml: Add C api

Makes it easier to use with C projects (especially those that don't allow C++ code)
It is needed, without it my code won't compile. If you want I can rebase it on top of 'pr-include-guards-2', but since the changes are identical it should merge just fine.