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