Support for multiple joins

Allows you to execute joins on records which match a number of values between the tables.
This functionality is implemented in a backwards compatible manner to prevent breaking node-orm2, pending changes on that branch which make use of this functionality.

This allows queries like the following to be generated

SELECT * FROM `table1` `t1` JOIN `table2` `t2` ON `t1`.`id1` = `t2`.`id1` AND `t1`.`id2` = `t2`.`id2`