Used Join class directly as Query.join() argument
Removed Query.join_map

This structure was used to speed up join reuse calculation, but is
no longer needed. If there are use cases where removal has real-world
visible performance penalties, it should be relatively straightforward
to reintroduce it as map {alias: [Join-like objects]}.