Made Set Extension Comparison More Generic

Previously, the set extension compared the differences with
`set()` to check for the empty set.  This did not work for
subclasses of `collections.Set`, so now it uses `len()` to check
for empty sets.