Micro AIs: use new fight_on_without_leader= key as needed

So that the scenarios with leaderless AI sides work.
Micro AIs: avoid code duplication between eval and exec functions
Micro AIs: avoid using table.remove

It’s slow.  The inverse logic using table.insert is much faster,
especially for large tables.  Only kept table.remove in a couple places
where it doesn’t matter.

Conflicts:
	data/ai/micro_ais/cas/ca_messenger_attack.lua
Micro AIs: avoid using formula= in SUFs

It’s slow for finding units with moves or attacks left.  The
alternative method of getting all units and then looping over the table
with a condition is much faster.
Use 'faction' and 'gender' attributes to provide default values in MP Create.

Before this, 'faction' and 'gender' were not used if 'force_lock_settings'
wasn't set to 'yes'. This resulted in inconsistent behaviour between the
mentioned two attributes and 'type' attribute. When 'type' was set, the relevant
leader was always selected by default.

This partially fixes bugs #21753 and #20562. To properly address them, it might
be needed to add 'faction_lock', 'type_lock' and 'gender_lock' attributes so
that UMC authors would have a way to actually lock these selections without
using 'force_lock_settings' if they don't want to.
Micro AIs: standardize eval/exec function table setup
Simple Attack Micro AI: code cleanup
Swarm Micro AI: code cleanup
Lurkers Micro AI: code cleanup
Patrol Micro AI: code cleanup
Guardian Micro AIs: code cleanup
Tweaks to two event triggers

Allows units other than Gweddry to find the gold, and triggers the
academy-finding dialogue when moving close to it, but not if Dacyn
already got there first.
Don't bother with stolen gold if there wasn't any
scons: link statically against libstdc++ and libgcc for mingw32 cross-compile
fixup user displayed strings

revisions + missing translation mark
thanks to Ivanovic for permitting this:
http://www.wesnoth.org/irclogs/2014/04/%23wesnoth-dev.2014-04-13.log
update changelogs
fixup party full bell

the party full bell code is moved back to the engine, and is
based on checking whether processing the most recent message
has made it now possible to start the game. this seems to be
the simplest logic that will do the right thing, it will now
make the bell play whenever the "I'm ready" button is active

this also addresses bug #21910.

note: the reason we don't check the "silent" flag is that it
causes the sound not to be played in some circumstances where
it should. multiplayer_connect_engine currently returns
value "true" for silent (the second part of result) in all
cases except when a player has been successfully assigned to
a side, in which case it is false. depending on the status of
allow_changes, that might be a time that we want to play the
"ready to start" bell.
update changelog
Fixes for factions, leaders and genders in networked games.

There was some oversight when changes to factions, leaders and genders set
up were made and as a result, in some cases, things were seriously broken.
This is an attempt to fix existing major problems. Some minor problems still
need to be addressed.

Specifically, this commit should fix problems with showing different factions,
leaders and genders lists for non-host and host players for the same sides. And
it should also avoid a situation where non-host player sees a "Custom" faction
even if it should not appear.
apply disable_notifications preference in all platforms