title: Sequelize WHERE sequelize.fn(...) AND something='something' ordering issue
body: <p>I have a Sequelize findOne function that looks to select a row where the given point intersects a polygon (col 'geom') AND status = 'active'.    </p>
  
  <pre><code>var point = sequelize.fn('ST_GeomFromText', 'POINT(' + lng + ' ' + lat +')', 4326);
  var intersects = sequelize.fn('ST_Intersects', sequelize.col('geom'), point);
  
  GeoCounty.findOne({
    attributes: ['id', 'name' ],
    where: {
      status: 'active',
      $and: intersects
    },
    plain: true
  })
  </code></pre>
  
  <p>As of right now, it works just fine. It produces SQL that looks like:    </p>
  
  <pre><code>SELECT "id", "name" FROM "geocounty" AS "geocounty" WHERE "geocounty"."status" = 'active' AND (ST_Intersects("geom", ST_GeomFromText('POINT(-98.025006 43.714735)', 4326))) LIMIT 1;
  </code></pre>
  
  <p>What I really want is:    </p>
  
  <pre><code>SELECT "id", "name" FROM "geocounty" AS "geocounty" WHERE (ST_Intersects("geom", ST_GeomFromText('POINT(-98.025006 43.714735)', 4326))) AND "geocounty"."status" = 'active' LIMIT 1;    
  </code></pre>
  
  <p>which is to say the ST_Intersects clause comes first and the AND status='active' comes after.    </p>
  
  <p>My questions are:<br>
      1. Is there any sort of performance penalty for executing the query the first way which does work?
      2. Is there a way to structure a where clause like this in Sequelize?    </p>
  
  <p>This does not work:    </p>
  
  <pre><code>GeoCounty.findOne({
    attributes: ['id', 'name' ],
    where: {
      intersects,
      $and: {
        status: 'active'
      }
    },
    plain: true
  })    
  </code></pre>
  
  <p>It produces this SQL:    </p>
  
  <pre><code>SELECT "id", "name" FROM "geocounty" AS "geocounty" WHERE "geocounty"."intersects" = ST_Intersects("geom", ST_GeomFromText('POINT(-98.025006 43.714735)', 4326)) AND ("geocounty"."status" = 'active') LIMIT 1;    
  </code></pre>
  
  <p>There is no geocounty.intersects...</p>