Applies the contained diff to the supplied set.
Returns a diff that, if applied to a set, undoes the effects of this diff.
Same as apply, but fails to None if the diff's removal set has any items that aren't present in
previous.
Same as apply, but fails to None if the diff's removal set has any items that aren't present in
previous.
Returns Some(_) if and only if invert will undo.
SetDiffis a class that represents changes applied to a set. It is in fact a Set[T] => Set[T], but doesn't extend Function1 since that brings in a pack of methods that we don't necessarily want.