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?)