Makes Enumerable copyable (rule of zero)
adds test with non-reference-deref'ing iterator

Iterator with T operator*() rather than T& operator*()
removes random access requirement for combinations

Just forward iterator now.
adds test with container of move-only objects
supports containers of move-only in combinations