You sometimes want to only deal with unique values of an underlying range.
Manually maintaining a set of already-dealt-with elements is cumbersome.
This introduces a unique_iterator forward iterator,
which lazily(!) tracks the elements of the range that were pointed-at already,
and skips them afterwards.
I've added some basic tests and adjusted a few places to use it.
clang-tidy: warning: header guard does not follow preferred style [llvm-header-guard]
not useful