refactor CellIter and CellListPotential

changes to CellIter
1. add a lot of documentation to CellIter
2. remove unused functions and member variables
3. coords is no longer passed to the constructor of CellIter.  I had to update all the dependencies because of this.  This means that things like natoms can only be defined the first time reset(coords) is called.  This is probably the first time get_energy() is called.

I also refactored CellListsPotential
1. Add a new class PairIteratorPotential which is simply a generalization of CellListsPotential
2. CellListsPotential is now just a wrapper for PairIteratorPotential

In the future we should reformat some of the other potentials like NeighborListPotential to use PairIteratorPotential