wixl: implement preprocessor undef
wixl: add "require" preprocessor support (not available in WiX)

The idea is to avoid including the same file multiple time and having
the same element multiple time defined.
wixl: files must be ordered the same way in Cab and File table
wix: add a bunch of includes to ease packaging

A couple of things:
- the WiX syntax is very bloated and maintaining that is a pain
- those files could move into there respectives packages, and
  installed under $datadir/wixl/include which should take precedence
  by default.
- they have been made with Fedora, but should be somewhat distro
  agnostic.
wixl: include global wix directory by default
wixl: add a fixme
wixl: improve shortcut support

To support such construction:

    <DirectoryRef Id="DirMenu">
      <Component Id="CShortcut" Guid="*">
        <Shortcut Id="ApplicationStartMenuShortcut"
                  Name="Remote viewer"
                  Description="A SPICE/VNC client"
                  Target="[INSTALLDIR]\bin\remote-viewer.exe"
                  Icon="IcoVirtViewer"/>
        <RemoveFolder Id="MENUDIR" On="uninstall"/>
        <RegistryValue Root="HKCU" Key="Software\VirtViewer\remote-viewer-shortcut" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
      </Component>
    </DirectoryRef>
wixl: default output file to inputfile name with .msi extension
wixl: add support for registry key parent, name and value

    <DirectoryRef Id="TARGETDIR">
      <Component Id="CRegistryEntries" Guid="*">
        <RegistryKey Root='HKLM' Key='Software\Acme\Foobar 1.0'>
          <RegistryValue Type='string' Name='InstallDir' Value='[INSTALLDIR]'/>
          <RegistryValue Type='integer' Name='Flag' Value='0'/>
        </RegistryKey>
      </Component>
    </DirectoryRef>
wixl: start ProgId/Extension/Verb support