Merge pull request #35 from Gallaecio/gl

[Galician (gl) Translation] Progress on wesnoth-utbs continues.
Experimental AI: change function names in calls to healer_support AI

The healer_support internal functions were renamed in a previous commit.
Experimental AI: consistently use underscores in AI ids and file names

This is the last step of making everything use consistent syntax.
[goal] tags in [ai] blocks with turns= or time_of_day= will now work.
SoF:Dragon: simplify [ai] tags

There is no need to have one set of aspect values for the first 12
turns, and a different one afterward on this map.  Also, Turn 12 itself
was previously covered by both [ai] tags.
Add per-aspect debug logging in AI configuration upgrade
Add the possibility to choose which value will be returned in get_text_val
Fix typos
Add a non-finished script that aims to autogenerate information about some campaigns for the wiki. Currently has few features and does not work with some campaigns (see blacklist)
Added wiki_output, basic features now work with some campaigns.
Fix a typo in a comment.
Use preprocess so we can remove blacklist. Now we parse data/_main.cfg and go on from there. There are now issues with Scenarios, so they're disabled at the moment. Also some issues with encoding and Espreon's favourite typography fanciness
Add a feature to build a cost_map in pathfind.xpp

In a cost_map each hex is mapped to total cost to reach this hex
(for one or multiple units).
Note that the runtime of find_reach() is not really affected
when the parameter full_cost_map is NULL (default).
Add lua function find_cost_map()

Temporarily see http://pastebin.com/PbmYvW6S
Later a wiki entry is added on http://wiki.wesnoth.org/LuaWML:Pathfinder
Two additional alternate portraits for asheviere.
New portrait for ancient lich.
Fix players_changelog formatting

People's misformatting of the changelog got me inadvertently doing it
too in the commit dealing with dependency listing in the add-ons client.
units: Added descrition for the Wose race by the_beagle

[http://r.wesnoth.org/p556815]
ai_helper.put_labels(): add optional keys= parameter
wmllint: fix bugs with ifdef_stack

This section assumed that "#ifdef" and "#endif" would come at the very start of a line. When an author would indent the #ifdef but not the #endif, ifdef_stack.pop() would kill the starting value of None, leaving an empty list. wmllint would then crash:

  File "wmllint", line 1138, in global_sanity_check
    recruit[ifdef_stack[-1]] = (i+1, map(lambda x: x.strip(), value.split(",")))

IndexError: list index out of range

Stripping the line not only stops the crashes, but allows wmllint to pick up #ifdefs that it wasn't before.

I then looked more closely at the pop(). #endif shouldn't just drop the last value in the stack, but reset the whole stack back to None. I realized that pop() was leading to wmllint occasionally assigning recruitment that wasn't inside an #ifdef to values from earlier #ifdef stacks, e.g.:

>>  starting value: [None]
#ifdef EASY  >>  [None, 'EASY']
..
#else  >>  [None, 'EASY', '!EASY']
..
#endif  >>  pop(): [None, 'EASY']
..
recruit=  >>  ifdef_stack[-1]: EASY