create "fight_on_without_leader" field of [side]
add debugging output
refactor check_victory, don't use no_leader

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