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
is this last case necessary? The distance given by the first case (out of the 4) should give the same as the one given but this last one. Or maybe it matters when using pbc?