Add agent dist option - CHAIN_ENDS

- Agent distribution option for spreading agents evenly at the ends of a chain
  graph
- Add test for CHAIN_ENDS dist
Cleanup and comments to CHAIN_ENDS agent dist