Made File/Media work properly; add ApprovedRevs::mediaIsApprovable()
implement show approved even if not in approvedrevs-permissions, but holding off on using it
Started handling deleted approved file
File approvals fully functional, minus AppRevs special page issues

== Changes made this commit ==
* Handle "delete" and "revert" file functions
* File pages check sha1 and timestamp in all cases, where before it was just checking sha1 sometimes
** Old sha1s can be uploaded/reverted, thus making the same sha1 appear in the history more than once, but will have a new timestamp
* Attempted to fix confusing cache issues on "revert" action with $file->purgeCache()...no joy
* Made onFileDeleteComplete() work properly, handles clearing approved rev if that file rev is deleted
* Removed "unsetApprovedFileBySha1" method, which didn't work because files are unique by sha1 AND timestamp
* Removed references to "Self" permission type for user pages

== Issues still pending ==
* When uploading a new file, it checks to see if it is a duplicate of latest-rev files only.
** At a minimum, it should check all approved revisions too
** Ideally it should check all pending revisions
* Fix "Unapproved Pages" list
* Approved pages that are no longer included in "MediaWiki:Approvedrevs-permissions" don't show approvals
** Should they? I think the answer is "no", but that I should create additional special page that lists all pages that are not considered approvable, but have an approved revision (with an "unapprove" link next to the page)
Start work on Special:ApprovedRevs
Merging changes from mac and windows
Simplify SpecialApprovedRevsPage::getQueryInfo()
cleaned up SpecialApprovedRevsPage:getQueryInfo
Start figuring out how to query for categories in SpecialApprovedRevs
Special:ApprovedRevs now works as well as original, but...

The three functions of Special:ApprovedRevs are now working:
1) Show all pages with an approved revision
2) Show pages whose approved revision is not their latest
3) Show unapproved pages

(1) and (2) can either be setup to show all pages within the
approved_revs table, or only those pages that are approvable
per MediaWiki:Approvedrevs-permissions. I'm not sure which
direction is best, yet.

A fourth function is yet to be added:
4) Show all pages with approvals that are not considered approvable

(4) would show pages that are within the approved_revs table,
but are not considered approvable per MediaWiki:Approvedrevs-permissions.

ALSO, all four of these functions need to be duplicated for
the approved_revs_files table.
Cleaned up getQueryInfo()

Unable to get SQL to work for "grandfathered" case, where trying to
pull all the rows of approved_revs EXCEPT those that meet the
requirements of MediaWiki:Approvedrevs-permissions.

Instead will pull all rows into "grandfathered" case, then filter
them one-by-one using ApprovedRevs::pageIsApprovable(). This can also
be used to add CSS classes to each row, allowing javascript filtering
Refactor and simplify SpecialApprovedRevs::getQueryInfo()
Made pageIsApprovable return true for grandfathered pages.
Special:ApprovedRevs now fully functional for pages; files still required.
Special:ApprovedRevs no longer shows page in $banned_NS_names
Cleaned up SpecialApprovedRevsPage::getPageHeader()

Now creates links with a foreach loop, so the code to build the HTML
is reused for each link.
Add links to Special:ApprovedRevs header for file approvals

Currently the links do nothing...
made grandfathered message show up on Special:ApprovedRevs for files
Increased version number, removed 'future considerations'
start making files work in Special:ApprovedRevs