Add resolver/package_tracker
Replace _slot_pkg_map and some tree dbapiS with _package_tracker
Replace mydbapi with _package_tracker
Replace _slot_collision_info with _package_tracker
Replace _slot_collision_nodes with _package_tracker
Package.__str__: show slot/sub-slot
format_unmatched_atom: Pretty printing for unmatched atoms

This is a split out from the slot conflict handler to be
used in other places.
Some small output fixes for the slot conflict handler

* unmatched atom printing now uses ^^ markers
* unmatched atom printing properly supports sub-slots
* Fix spurious "no parents" message caused by AtomArg parents
Add digraph.discard
Solve some slot conflicts without backtracking