Alter Salesforce::query() to accept a select query object rather than a string to structure the query data and make it alterable.
Allow other modules a SOQL query before it is executed.
Remove unused tables propery in SalesforceSelectQuery.
Set operator to "IN" if value is an array.