Batch process wiki info

This code change allows EoL to harvest wikimedia images which have not only been placed in taxonomic galleries (as currently) but also in taxonomic categories. It does this by querying the Mediawiki API not just for url information, but also for category information (and incidentally, for mediatype & mimetype information too). It calculates a "taxonomy score" for each valid taxonomy found. Media files may be associated with multiple taxonomies: the one chosen is that with the highest taxonomy score (the one with the most detailed taxonomic information).

Downloading the categories also allows a better guess at license categories (messages are output when license info derived from categories overrides that from simple parsing of the wikitext). With access to a list of "distribution map" categories (obtained via a couple of external websites associated with wikipedia), the category information also allows "distribution maps" to be correctly identified.

API querying is done in batches of 50 pages (the maximum allowed in a single query), and the xml SchemaDocument file is added to as each batch is processed.

To reduce load on the Mediawiki server, this code also parses the {{Taxonavigation}} template in gallery and category files directly, rather than making an API request for the expanded HTML source. This requires an initial pass of the xml dump to locate {{TaxonavigationIncluded}} and {{TaxonavigationIncluded2}} templates, which are used as taxonomic shortcuts in the {{Taxonavigation}} template.

A few extra additions are also included, such as saving the correct mediatype (allowing sounds, movies, etc. to be harvested), saving GPS data where it is available, and slicker processing of the {{Information}} field so as to get description data more comprehensively.