Fix/assignment operators for iterators

Fix assignment operator implementations for iterators:
* Remove templated assignment operators as they are not really needed (the corresponding functionality is provided by the explicitly or implicitly defined non-templated assignment operators, combined with templated constructors). Applies to `range_segment_iterator`, `concatenate_iterator` and `flatten_iterator`.
* Remove assignment operators when they are the same as those that would have been created automatically by the compiler. Applies to `closing_iterator` and `ever_circling_iterator`.