Fixes JOIN duplication issue when default join type equals given one (issue #373)

This fixes issue #373.

Instead of checking object identity I switched to check if Joins equals.

I've provided fix for Criteria and ModelCriteria. For ModelCriteria I also added whole test set for checking if joins doesn't duplicate (similar to tests for Criteria).