Enable using Arel nodes in Squeel with "|" operator.

Fixes #314

Examples:

    User.where {
      (id.in([1,2,3]) | User.arel_table[:id].eq(1)) &
      ((id == 1) | User.arel_table[:id].not_eq(nil)) }
Add a spec to prove the problem of #302 had gone.
Properly append binds from subqueries and associations with PostgreSQL.
The issue happens if there are more than 1 bind in the SQL. Fixes #272.

Generate table names correctly when joining throught an association.
Fixes #302.

add mysql, mysql2, postgresql adapter to specs. It should make sure
that Squeel would run against all these databases consistently.

Extend travis scripts to support multiple adapters.