Currently, watchlist management is available via the User class. Factoring it out helps with resolving the circular dependency between User and Title.
Calls to User::isWatched, isTempWatched, addWatch, and removeWatch should be replaced with the respective calls to WatchedItemStore. Relevant permission checks must be retained, see T223165 for discussion as to how.