Refactor implied bounds computation

Moved implied bounds computation logic out of the borrowck module into trait selection, making it available only for the next-solver. This internal reorganization doesn't change visible behavior but improves how the compiler handles type bounds inference.