[backend] implement appdata-icon extraction

Unextracted icons in the appdata file make the xml invalid.

This commit also changes the appdata parsing from XML::Structured
to XML::Simple, as the appdata specification is rather complex and
in flux, so we do not want to have its dtd in the build service.