Add support for Set in SQL interpolation

String interpolation gives surprising results for `Set`s.

```
scala> sqls"x in (${Set(1,2,3)})"
res5: scalikejdbc.interpolation.SQLSyntax = SQLSyntax(value: x in (?), parameters: List(1, 2, 3))

scala> sqls"x in (${Seq(1,2,3)})"
res6: scalikejdbc.interpolation.SQLSyntax = SQLSyntax(value: x in (?, ?, ?), parameters: List(1, 2, 3))
```

This is because of the following code in `SQLInterpolationString`:

```
case t: Traversable[_] => t.map {
        case SQLSyntax(s, _) => s
        case _ => "?"
      }.addString(sb, ", ") // e.g. in clause
```

(`Set(1, 2, 3).map(case _ => "?")` results in the 1-element `Set("?")`)

Fixed by adding a special case for `Set[_]`.