Fixed the city captured sound being played to all players.

When a human player captures a city, the sound intended to accompany the
city-capture popup was being played to all player rather than just to
the capturing player.

It turns out that the sound was being played twice anyway.
Fixed a grammar mistake in the original BtS text for flanking kills.

previous: "your unit been killed from a flanking attack"
current: "your unit has been killed by a flanking attack"
Fixed an flag update problem when switching in and out of debug mode.

The unit flags on non-visible plots were not being updated when
switching in out out of debug mode. When debug mode was turned on, there
were missing flags; when debug mode was turned off, there were lingering
flags.

This bug was a side-effect of my changes to CvMap::updateCenterUnit.

The 'debug' center unit now determines the flag.
Removed bogus cities from the 'why don't you attack' diplomacy screen.

Previously, if the human and the AI had any shared wars, the diplomacy
screen would list cities belonging to all teams the human is at war with
regardless of who the AI is at war with.
Put new conditions on who the AI will accept city target requests from.

AI players will now only accept city target suggestions if they are
either pleased towards the asking player, or on the same team, or a
vassal of the asking player's team.
Just removed / tidied some comments.
Added a sytem to stop the AI from changing target cities too often.

New data: CvPlayerAI::m_iCityTargetTimer.
New functions: AI_getCityTargetTimer, AI_setCityTargetTimer.

When the AI is requested to target a city, the timer is set to 10 turns.
When the city targets are chosen normally, the timer is set to 4 turns.

Cities targets are still updated at random times, but the random updates
are blocked if the target timer is non-zero.
Tidied up a section in CvTeam::declareWar. Functionality unchanged.

I was going to change some stuff, but I decided to postpone it.
The new version should be slightly faster anyway.
Fixed a GPP evaluation bug; adjusted yield value for perm. specialists

There was bug which caused the scaling formula to always treat the
current city as having 0 GPP per turn, which completely messed up the
scaling relative to the 'best' city.

The special yield value modifier effect in AI_permanentSpecialistValue
has been diluted, because that modifier is intended as more of a
short-term thing.
Governors will now pop borders for barbs and build more units for humans

Barbarian cities will now use a 'build culture' process to pop their
borders when they can.

Relaxed some of the conditions on automated cities for building units.
Made some corrections and adjustments to CvCityAI::AI_yieldValue

Extra points for productivity when below par are now only counted if the
player doesn't have any hurry types enabled.

When estimating how much unhappiness will wear-off before the city
grows, the estimated time for growth is now more 'optimistic' (which
means the growth time is shorter, which means the unhappiness is
greater...)

Fixed some mistakes in iGrowthValue and iDevalueRate with bFillingBar.
(The value was too high.) Also, tweaked the devalue rate for the default
case.

Slightly reduced the value of food in CvCityAI::AI_growthValuePerFood.
The "EXTRA_YIELD" xml value is now cached, for slightly faster access.

Added new function CvGlobals::getEXTRA_YIELD
Extra yield from improvement upgrades is now counted in AI_plotValue.

CvCityAI::AI_plotValue now takes into account the future 'extra yield'
civs will get from being financial when considering the value of
improvement upgrades.

Note: this bonus still isn't taken into account when choosing which
improvements to build in the first place; and the golden age bonus is
not counted for either case.

Added some comments.
When joining a group, the group's mission queue is once again cleared.

I've restored this behaviour because it's otherwise difficult to prevent
the group from executing its queued missions when units are added to the
group with the shift key - because the exe tells the game to execute
automoves when shift is released.
Removed BBAI function CvTeam::getCurrentMasterPower. Tidied some code.

CvTeam::getCurrentMasterPower was typcially used like this:
    int iPower = isAVassal() ? getCurrentMasterPower() : getPower();
This is cumbersome, and ineffecient because it has to do a vassal check
on all teams for isAVassal, and for getCurrentMasterPower.

The following code gives the same result:
    int iPower = GET_TEAM(getMasterTeam()).getPower();

Also, there could be some confusion between 'getCurrentMasterPower'
and 'getMasterPower', which are completely different functions with
completely different purposes.

So I've deleted CvTeam::getCurrentMasterPower.
CvCityAI::AI_assignWorkingPlots no longer removes all specialists.

Previously, AI_assignWorkingPlots would remove all specialists, and then
reassign the citizens using "addBestCitizen" (perhaps giving them back
the same job anyway). This no longer happens.
Tidied some code and comments. (No functionality changes.)

Tightened the asserts in CvTeam::doesImprovementConnectBonus.
Removed some BBAI comment blocks which surrounded unchanged code.
Made a couple of style adjustments.
Added an avenue for the AI to use to free itself as a vassal.

CvPlayerAI::AI_considerOffer now checks the for denial of existing
vassal deals and returns 'false' if the deal would be denied.

Before this change, AI vassals would never free themselves!

(Note: on closer examination, in the original BtS code, vassals could
free themselves from AI masters but not from human masters, because of
an inconsistence in the way existing deals were being checked. So when I
changed the code to be consistent, I had unintentially taken away the
AI's avenue for canceling vassal deals with anyone at all. Now it is
fixed and better than ever.)

Also, when considering capitualion, the AI will no longer be quite so
afraid of the new master's other enemies. (ie. if the would-be master is
much stronger than the other teams they are at war with, then the
would-be vassal will not use 'we're afraid of your enemies' as an excuse
to refuse capituation.)
CvTeam::getWarWeariness can now include the effect of enemy WW modifiers

Added a new parameter to getWarWeariness: bool bUseEnemyModifer = false.
If bUseEnemyModifer is set true, then the getEnemyWarWearinessModifier
will be used to multiply the return value.
War weariness fix in AI_getWarCommitmentCost. AI_warDiplomacyCost tweak.

The war weariness calculation in AI_getWarCommitmentCost was missing some modifiers.
AI_warDiplomacyCost now adds a negative value if the team has friends already at war with the target.