The current Downloader class works pretty well, but is entirely redundant to $.ajax(). We should think about replacing the former with the latter, and maybe putting the Deferreds we get from ajax() into pg.ajax, a new list.
While we are at it, might as well replace it with mediawiki.api instead. This gives us
- token refresh
- centralised error handling
- fewer needed configuration options.
Do make sure to retains downloadsinprogress, used for aborts.