fix non-portable code

clang on osx complained that std::vector<>::const_iterator had a private
constructor.
AtomInCellIterator now stores it's own end point

this makes AtomPairsInTwoCells a little simpler.
remove some of the unnecessary safety checks from cell iterators