Title objects are meant to be dumb value objects; we shouldn't add to their internal state like this, but should be working to remove the bits already in there like the article ID.
Preloading information like this can make sense, but probably belongs in WikiPage, not Title.
* Removed $oldFashionedRestrictions parameter from Title::loadRestrictions*(); the only extension using it is LiquidThreads and it's using Title::newFromRow() to create the Title object, so the field is already cached (and this even allows to cache that field when there's no row for that page in the page_restrictions table)
* Also reset $mTouched and $mIsNew members on resetArticleId() calls
* Updated FakeTitle a bit
This shouldn't cause any back or forward compat issues since php treats method names as case-insensitive. So this change shouldn't break any old extensions, and extensions are free to start using getLinkURL and won't have any issue breaking with old versions of MediaWiki.
* Make FakeTitle a subclass of Title so functions with a type hint like Parser::parse() accept FakeTitles too
* Remove two static functions from the FakeTitle class
* Removing Title::createRedirect: not used at all in trunk and in the extensions, originally created for the old template namespace script, which was deleted.