Publish MaintenanceShell v0.4.0: Rewrite

* Fix various security issues
  - Use in_array on the directory scan instead of
    sanitising $script and doing file_exists.
  - Catch the output of the maintenance script with AJAX
    and output it as a text node instead of echo'ing it raw
    unescaped between <pre> and </pre>, which can cause html
    escape issues with the output of the maintenance script.

* Phase out hacks in main php file, in favour of using regular
  MediaWiki interfaces for:
  - i18n messages
  - user tokens
  - user permissions

* Use FormSpecialPage to automatically take care of:
  - Visual layout and creation of HTML <form> output
  - User token handling
  - Input validation
  - User block status, rights and permissions checking
  - Simple <select> drop down menu instead of <table>
    of <a> links.

* Use ResourceLoader for delivery of javascript/css

* Implement basic parser for the cli arguments instead of
  the manual regexing, also adding unit tests for many
  edge cases that the old regex didn't support.

  To run:
  $ cd mw/core/tests/phpunit;
  $ php phpunit.php ../../extensions/MaintenanceShell/;

* Config changes:
  - Removed obsolete $wgMaintenanceShellLang
  - Renamed $maintenance_path to $wgMaintenanceShellPath

* Cleaned up directory structure and file naming to
  latest MediaWiki extension recommendations and coding
  style conventions.
11 files changed