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.
Other ranges that depend on ordering also provide/forward mutable/assignable access to elements as a compromise to practicality. Examples include std.range.SortedRange and std.container.rbtree.RedBlackTree.Range.