set theory v2

Now it can handle non hashable items like dicts (which used to produce a TypeError)
Also it now makes each list unique before operating on them