Fix Issue 10460 - auto ref Union, SetDifference, SetSymmetricDifference

https://issues.dlang.org/show_bug.cgi?id=10460

The rearrangement of SetSymmetricDifference.front was needed since auto ref doesn't deduce correctly when there are multiple return statements (by design), so a single return statement with the ternary operator was used.
For `SetDifference`, it always returns the element from the first range because it is defined as all the elements from r1 that are not in r2. For `SetSymmetricDifference` it returns elements that are either in r1, but not r2; or r2, but not r1 (so there is no intersection). The reason I haven't done this for `SetIntersection` and `SetUnion` is precisely for this reason.