Created a Set Difference class

@skirpichev I renamed `Difference` to `Complement`. 

> We have _complement methods already. __sub__ method should go to the Set class in this case (syntactic sygar for Complement, just like __add__ for Union).

A little thing that is different here is that `self.complement(other)` here means `other - self` instead of `self - other`. We can't simply put all the code of `__sub__` method to `.complement`. But we should have only of them.