create "fight_on_without_leader" field of [side]

this field is intended to allow battles to continue after the death of a leader
if a side has this flag enabled and any units alive, they will be considered
to have a leader regardless of canrecruit.
add debugging output

help to determine victory conditions associated to victory_when_enemies_defeated
refactor check_victory, don't use [side] no_leader attribute

1. sides without leaders aren't defeated if
"fight_on_without_leader = true". don't use no_leader
for this purpose anymore.
2. refactor to use a std::set instead of std::vector,
and some related improvements, for what was formerly
the "seen_leaders" data structure
[side_drop] sides go to idle, not human (fix bug 21459)

since idle sides don't get initialized until someone takes control
this alleviates 21459. it might possibly aggravate 21397, if that
bug is not fixed by correcting save files with unintialized sides