SI-6457 ImmutableSetFactory.empty results in StackOverflowError

ImmutableSetFactory relies upon empty to create its builder, which in turn relies upon its builder to create an empty.  Added an emptyInstance method to hold the actual empty set (which also removes duplicated functionality for empty sets).

No test, as the original pattern:

  object Factory extends collection.generic.ImmutableSetFactory[collection.immutable.Set] {}

no longer compiles.  This should be verified by whoever checks this commit, but this kind of change is hard to revert by accident.  No reason to waste resources checking it forevermore.