Suicide, signals, and symbionts : evolving cooperation in agent-based systems