Add chessfriend_bitboard::IterationDirection Make BitBoard::occupied_squares() take an IterationDirection and return an iterator corresponding to the direction. Do the same for ::first_occupied_square().