A framework for agent-based modeling of community assembly and succession