differentiate our id from the appstream id
appstream doesn't consider foo.desktop equal to foo, we do so as to
have consistent naming all around. this however then breaks when giving
the id to libappstream e.g. through the appstream:// URI.
to fix this we now have two different id concepts, our internal one and
the actual appstream id.
additionally we'll try very hard to always have an internal one by infering
it through the class constructor whenever possible
additionally the crawler will stop mangling the appstream ID and instead
set x-kde-id which is the new mangled id for internal use