[mk] Fail less hard if no alternative is available for a dependency
A package was completely disabled if user preferences for alternative selection (if any) could not be satisfied. This was useful in particular with python, to not try building packages with python versions that are by default not available on a system. However, completely disabling a package because of this creates nasty side effects if one just want to extract the package or otherwise check its requirements. This could also break the "mirror distfiles" bulk builds. Thus the alternative selection now considers all available alternatives (still sorted with the user preference first) and two kind of errors can be generated: 1. The first kind is when no alternative exist at all. This is still a fatal error, this indicates something really wrong with the dependencies. 2. An alternative exists, but is not in the user preferences. This is a "soft" error (triggered only for cbbh (aka. build) targets and not cbeh (aka. extract) targets). This solves the "mirror distfiles" issue while preserving the good old behaviour of not building a package with a user-disabled alternative.