rotate.hpp: include guards and make functions inline.
concatenating_iterator: parameterise over Value and Reference.