Move `check_region_obligations_and_report_errors` to `TypeErrCtxt` Makes sense for this function to live with its sibling `resolve_regions_and_report_errors`, around which it's basically just a wrapper.
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.