slot_conflict_handler: fix for bug #348389

This fixes a broken assumption about USE dep matching behavior,
since commit 766988aa56bb1bbd2796f96946e62ed78cdf259 introduced
stricter IUSE matching by using Atom.unevaluated_atom for IUSE
checks (thus changing behavior in cases where conditional USE
dependencies disappear upon evaluation).
diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py
index c51b9f7..0f4c6a5 100644
--- a/pym/_emerge/resolver/slot_collision.py
+++ b/pym/_emerge/resolver/slot_collision.py
@@ -231,14 +231,23 @@
 								collision_reasons[("version", sub_type)] = atoms
 							elif not atom_set.findAtomForPackage(other_pkg, \
 								modified_use=_pkg_use_enabled(other_pkg)):
-								#Use conditionals not met.
-								violated_atom = atom.violated_conditionals(_pkg_use_enabled(other_pkg), \
-									other_pkg.iuse.is_valid_flag)
-								for flag in violated_atom.use.enabled.union(violated_atom.use.disabled):
-									atoms = collision_reasons.get(("use", flag), set())
-									atoms.add((ppkg, atom, other_pkg))
-									collision_reasons[("use", flag)] = atoms
-								num_all_specific_atoms += 1
+								missing_iuse = other_pkg.iuse.get_missing_iuse(
+									atom.unevaluated_atom.use.required)
+								if missing_iuse:
+									for flag in missing_iuse:
+										atoms = collision_reasons.get(("use", flag), set())
+										atoms.add((ppkg, atom, other_pkg))
+										collision_reasons[("use", flag)] = atoms
+									num_all_specific_atoms += 1
+								else:
+									#Use conditionals not met.
+									violated_atom = atom.violated_conditionals(_pkg_use_enabled(other_pkg), \
+										other_pkg.iuse.is_valid_flag)
+									for flag in violated_atom.use.enabled.union(violated_atom.use.disabled):
+										atoms = collision_reasons.get(("use", flag), set())
+										atoms.add((ppkg, atom, other_pkg))
+										collision_reasons[("use", flag)] = atoms
+									num_all_specific_atoms += 1
 
 					msg.append(" pulled in by\n")