ai_helper.get_closest_location(): fix bug in application of SLF

The previous method only worked for keys in the SLF, not tags.
ai_helper: make AI move error messages more descriptive
Fred test scenario: switch enemy side to playing Northerners
Generic recruit engine: allow avoided hexes parameter

Allow a parameter to be passed to the engine listing the castle hexes
to be avoided for recruiting.  Recruiting on these is not entirely
disabled, but strongly discouraged with respect to other hexes.
Fred: add a high priority attack action

This executes high chance-to-kill low-risk attacks instead of grabbing
villages under some circumstances.
Fred: reevaluate after leader-move forced recruiting (bug fix)

When the leader leaves the keep, recruiting is forced first.  This
recruiting changes the situation on the map.  In the worst case, the
hex the leader might want to move to could then be blocked, which
previously lead to an AI crash.  Thus, we now reevaluate the next move
after such recruiting occurs.
Fred: discourage recruiting on hexes needed for planned moves

When the leader is about to move, recruitment needs to happen first.
This recruiting should try to avoid hexes onto which the leader (or
another unit currently planned to move) is trying to get, if possible.
If not possible, recruitment will be done anyway and a new move or move
sequence will be calculated.
Fred: fix bug sometimes making move sequences impossible

If a unit participating in the current move sequence has to move out of
the way for another unit of the same sequence first, it might then not
be able to get to its goal hex any more.  Previously this caused the AI
to crash.  If this happens now, the move sequence is abandoned and
reevaluated.
Fred: make full offensive mode kick in earlier again

Was changed from turn 3 to 9 recently, but that’s too late.