Atomically add agents - Done
adding agents is absolutely fine now, but one should pay attention not to let  AGENT_NO_D exceed MAX_AGENT_NO_D, otherwise error occurs
nothing important
after delete many things, the stack size of step kernel can be automatically determined, thus curand_init can work successfully. The reason of changing in determine the stack size might be related to the removal of the GIterativeAgent, because it inherits the virtual device function step as well, which may cause some confusion to the compiler. Need to verified later, but for now, it works
deleting is functional, but with bugs
memory management need to be reconsidered
      1. the timing of deleting agent
      2. when the number of agents increases, the program crashes because of the bad memory management (MAX_AGENT_NO is set to 4096)
Memory heap is not sufficient, need to reconsider the memory management strategies