Support .where(sql())

This is an attempt at addressing #60 (and, originally, https://github.com/Suor/sql-bricks-postgres/issues/2).

@sandfox, @Suor: I tried doing `.where(sql(...))` and it generated `WHERE ... IS NULL`. So I stepped through the code and found that SQL-Bricks supports two WHERE APIs: `.where({key: value})` and `.where(key, value)`. Since an object wasn't passed, sql-bricks thought we were attempting the 2nd API, and since there was no 2nd argument, sql-bricks interpreted it as a null.

In 47fc522, I added support for passing a single `sql()` literal. This made my test pass.

@Suor: In your example, you have parameters being passed to `sql()` as additional arguments.... this would be consistent with the other `.where()` uses, since they allow you to pass parameters -- I probably should add that too, since as it is you have to manually add the parameter values after SQL-Bricks generates the SQL string, but before it gets sent to postgres.
@Suor: Yes, this is an issue. I implemented the optional params in 16d6db1, but it didn't solve this problem -- the programmer still needed to supply the actual placeholder in `sql()`, which is ok for `?` placeholders, but not `$1` or `?1` placeholders as you note.

In cdfdf29, I added code to inject the appropriate parameter number for `$1` and `?1` style placeholders. It feels like a hack, but at the moment I can't think of a cleaner way to do it.