add a hash combine implementation that has some minor performance guarantees