adds test with container of move-only objects
makes MoveOnly less-than comparable
permutations supports containers of move-only
adds DerefByValueFancy with random access iterator

(it's just a pointer)
adds test with deref-by-value fancy
make permutations work more expectedly

instead of always copying, it works like the other itertools. Only the
vector of collection_item_types is sorted, rather than the container
itself. Additionally, there need not be any strange behavior for
initializer_lists anymore.
test with normal deref-by-value
Permutations supports minimal iterator type

I knew it could be done.