Optimize Compound KeyEqualityComparers

I learned a little trick from the way Tuples implement their GetHashCode
method that will help to improve performance for compound
IEqualityComparers in some cases.