make LinkError target names distinct

else get AssertionError from assert_disjoint
make number of link errors of each type settable

so we dont have to hardcode the check for the corret number of each type
actually test _categorize_errors
add make_linkerrorhandler helper
actually test _categorize_errors