simplify SizedIteratorRange concept and the iterator algorithms in iterator.hpp