Implemented the PoolCounter feature and did some general refactoring in the areas that it touched.
- Renamed Article::outputFromWikitext() to Article::getOutputFromWikitext()
- Factored out cascade protection updates
- Removed recently-added Article::tryParserCache(): misnamed, can be done in one line of code in the caller. Deprecated OutputPage::tryParserCache().
- Made some functions public instead of protected when they could be useful from hooks.
- In ParserCache, removed PHP 4-style ampersands
- Factored out robot policy logic, "redirected from" header, patrol footer, diff page, revdelete header, CSS/JS formatting, footer, namespace header, missing article error
- Removed some variables, renamed some others, fixed incorrect use of empty()
- Used the refactored footer section to do a couple of early returns and unindent a massive if(!$outputDone) block
- Removed fantasy interpretation of $this->getContent()===false in comment
- Don't try the parser cache when ArticleViewHeader specified $outputDone=true
- Move timing hack to getOutputFromWikitext()
- Stop using $wgOut->parserOptions() with save/restore nonsense every time you want to change something in it. This is meant to be OOP.
- Don't overwrite the article text with an error message and then pretend to write it to the cache, that's confusing