Internalize some of the web view controller loading logic and simplify API.