Fix SpecialPageFactory list handling

* Since Ic917c7d8/I7420b9ec, SpecialPageFactory doesn't properly cache
  SpecialPageFactory::$list.
* SpecialPageFactory::resetList() has never really worked right, it
  loses all the core special pages.
* SpecialPageFactory::getAliasListObject() could be called recursively
  from a SpecialPage_initList hook. There's no particular reason to fail
  it, just allow the original call to override the result of the
  recursive one and hope it works.

Change-Id: I7adb346eab00d5849d087ddff75230a35be3ee8f
Merge "Fix SpecialPageFactory list handling"