New approach for loading of metadata 1/3.

Description:

If there are two (or more) the same packages (same mtime, size and basename)
with the same checksum. Load the metadata only once (such packages can have
and probably have a different local_href (different directory))
but the directory is not important during --update.

If there are two (or more) seemingly the same packages (the packages have the
same checksum, but different mtime, size or basename). Ignore all of these packages!
The checksum is internally blacklisted during the loading of metadata, and
metadata of each package wich has the checksum will be skiped.

Important note:

As you can see, this approach is not optimal if you want to load a
whole metadata. But it is great if you wan to load a metadata which
are gonna be used during --update.

If you don't like this behaviour during use of cr_metadata_locate_and_load_xml()
then just quit using the function and use
the cr_xml_parse_(primary|filelists|other) directly by yourself.
New approach for loading of metadata 2/3

Add cr_HashTableKeyDupAction that specify behavior of metadata loader in case of duplicated items.

See comment at cr_HashTableKeyDupAction enum.
New approach for loading of metadata 3/3

New bitfield in cr_Package loadingflags, that contains information
about what was loaded to the package (primary, filelists, other) and
where is the package from (parsed from rpm header, from xml, etc..)

Thanks to this field, the XML metadata parser can recognize that
a XML chunk with files (filelists.xml) or changelos (other.xml)
was already parsed for the package and skip duplicit chunks.