Add support for list matching in keyword list query relations.

Adapters under the hood are now required to "expand" binding placeholders to
accommodate bound list arguments.

Examples of data flow:

  Model.where(id: [1, 2, 3], archived: false) |> Model.to_records

              |
              V

  adapter.execute_prepared_query

              |
              V

  adapter.convert_bindings_to_native_format("SELECT * FROM users WHERE id IN(?) AND archived = ?", [[1,2,3], false])

              |
              V

  SELECT * FROM users WHERE id IN($1, $2, $3) AND archived = $4