lib: internal: nativeresolver: dependencygraph: FillHelper: processSynchronizations: ignore not existing packages

The important consequence is that the method doesn't call
getVertexPtrForEmptyPackage for non-existing packages.
test: manage: synchronize-by-source-versions: not-existing-packages: added
lib: internal: nativeresolver: dependencygraph: FillHelper: getVertexPtr: avoided constructing strings for object cache
lib: internal: nativeresolver: dependencygraph: FillHelper: getVertexPtr: refactoring: receive hash value and vertex checker as parameters
lib: internal: nativeresolver: dependencygraph: FillHelper: getVertexPtrForEmptyPackage: small optimization: re-use calculated package object where possible
lib: internal: nativeresolver: dependencygraph: FillHelper: processSynchronizations: small optimization: pass calculated package object to __get_versions_by_source_version_string()
lib: internal: nativeresolver: dependencygraph: FillHelper: processSynchronizations: small optimization: avoided allocating a vector of related versions
lib: internal: nativeresolver: dependencygraph: FillHelper: processSynchronizations: refactoring: avoided using FORIT
lib: internal: nativeresolver: dependencygraph: FillHelper: processSynchronizations: small optimization: avoided copying a vector of related package names