Support the per-repo icon directories

This is needed for two reasons:

* Different repos may want to ship different versions of the same application.

* If we install things to /var/cache/app-info/icons then we need to be able to
  clean them up easily as they are not under the package manager control.

You can use old or new icon metadata styles as gnome-software will detect both
kinds at runtime. You can't mix metadata styles tho. Pick one or the other!