BitSet: unify getAllSetsFrom for BitSet and BitCollection

We turn this function into a template that allows to get a vector of
what You want.
This was necessary as we have to implement getNonEmptySetsFrom which
would increase code duplication drastically.
BitSetLoopOperations: use getNonEmptySetsFrom

This will decrease their running time.
Rename: GetBiggestCollectionOperations -> GetBiggestUnionCollectionOpers

The old name was really confusing