Strict transient

Moved asTransient just to persistent structures and asPersistent just to transient structures. Moved mass operations (union, intersection, ...) just to persistent structures.
product should return (lazy) Iterable over all pairs