pixel iterator no longer derived from std::iterator and some minor changes to ensure that --end will end up in the last valid l;ocation