Order by desc

When we have a Union_Ordered, sometimes we need to compare the different values of the union (e.g. if we're sorting over it). This causes the index to preserve that information.

I'm going to refactor the determineOrderEffectiveness method shortly to have less nested if/for/if stuff going on and open a second PR for that.
> I changed getIndexColumn to throw an exception

Did you propose to include that throw here? In any case, neither of the two options above can apply to a union column, which must match some actual conditions.