[mcs] Make xbuild resolver prefer specific version if available

When two or more versions of an assembly are available and
"specific_version" is set to false the resolver picks the first
available assembly with a matching name. Sometimes this result in
an uncompatible set of assemblies (depending on how the different
assemblies are sorted in the pkgconfig cache). This fix makes the
resolver to always prefer the specific version if available, and only
fall back to "first assembly with a matching name" if no specific
version is available. If "specific_version" is set to null the old
behaviour is preserved.