Run createwhatprovides() more aggressively
This is probably more than necessary but it doesn't hurt anything and
it's annoying to debug issues where it isn't done often enough.
Also reusing the solver instead of recreating it every attempt.
Also renamed the depsolving methods to have more accurate names.