WIP: 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?)
I don't understand what this comment means by 'part of the class', when these are module-level constants, not part of any class.