xsd-fu: Extend C++ support

· Add GUARD property for include guards
· Add SOURCE_TYPE to distinguish between source and header output
· Source paths are relative to the output directory; this is to
  enable include guard generation
· Metadata output is a single target, rather than five separate
  targets
Merge pull request #512 from rleigh-dundee/xsdfu-headers

xsd-fu: Extend C++ support to generate headers and include guards