wmllint: stop complaining about unknown IDs inside [clear_menu_item]
New (and simpler) memory management for vconfig.

The old management had potential, but in practice it was rarely in
a position to show off. It ended up doing little more than reference
counting; a shared_ptr can do this with less overhead.
Localize a static variable to the function where it is used.
Eliminate variable::manager.

With the simplification of vconfig, this class no longer serves
a purpose.
addon/client: Move connection step to a separate member method

This fixes memory leaks or crash-to-desktop (the latter reliably
triggered by Boost 1.54) situations resulting from failed connections to
an add-ons server throwing an exception from the addons_client
constructor, not giving the destructor a chance to run.

Thanks to loonycyborg for helping me diagnose the issue.
Using a typedef to make some code easier to read.
Turn wmi_container into a container.

This defines some types and functions that come from the STL
definition of a container. It's not complete, though, as I do
not see a reason to define size(), max_size(), or swap() at the
moment. (They would be easy to add, if the need ever arises.)

The new #include file might be useful elsewhere as well. I'll look
into that.
Make use of wmi_container's new features.
Add find() and erase() to wmi_container.
Remove wmi_container::get_menu_items().

No one needs to get at the underlying implementation anymore.
Have wmi_container::get_item() return an item instead of a pointer.

Now wmi_container is a black box, with no external code concerned
with how it stores its items.
const-qualify elements of play_controller::wml_commands_.
No need to search through a container twice.
Fix instances of 'handle' typoed as 'hanlde'
Use std::wstring::c_str() to get null-terminated strings, not data()

The basic_string::data() method does not guarantee the result to be
null-terminated, and passing a non-null-terminated string where a
null-terminated string is expected (i.e. every Win32 API call here)
leads to all kinds of misfortune.
Fixing compilation issues.

Apparently iterator_extend_base caused more issues than it solved,
so it is gone now.

Also, access to the underlying iterator has been made less roundabout.
Prepare attack.*pp for new recruitment CA.

This includes:
- A new constructor for class battle_context_unit_stats to make simulations work with unit_types,
- Making function combat_modifier() a bit more generic (to specify a custom lawful-bonus),
- Changing method battle_context::better_combat() to be a static method (It doesn't use class-members).
- Adding method unit_type::resistance_against() so a unit_type can evaluate WML-resistance-abilities.
Add aspects for new recruitment CA.

The aspects are:
- recruitment_diversity
- recruitment_instructions
- recruitment_more
- recruitment_randomness
- recruitment_save_gold

All aspects will only work with the new recruitment CA (not committed yet).
See http://wiki.wesnoth.org/AI_Recruitment
Add new recruitment CA.

The Candidate Action is not 'hung in' yet.
Fix a bug.