Fixed #23853 -- added Join class to replace JoinInfo

Replace ORM's JoinInfo namedtuple with a Join class. The idea is that the Join class actually produces the whole join and also contains additional join information (for example, is this join equal to some other already existing join?)
not sure the connector variable offers any benefit here -- can we include it directly in the string below?