Validates a database, removing unusable units from it (this includes removing units that the user has explicitly ignored.) Our general strategy:
Remove all broken units (dangling dependencies)
Remove all units that are cyclic
Apply ignore flags
Remove all units which have deps with mismatching ABIs