Anorm string interpolation

This resolves #2273 to add String Interpolation feature to generate SQL queries as:
```scala
SQL"select * from computer where id = $id".as(Computer.simple.singleOpt)
```
or
```scala
SQL"""
  update computer
  set name = ${computer.name}, introduced = ${computer.introduced},
  discontinued = ${computer.discontinued},   company_id = ${computer.companyId}
  where id = $id
""".executeUpdate()
```

This also allows to insert sequence values for supporting IN clauses:
```scala
val list = Seq("Apple Inc.", "Sony", "Samsung Electronics")
val computers = SQL"select * from computer left join company on computer.company_id = company.id where company.name in ($list) order by company.id, computer.name".as(Computer.simple *)
```

I've tested it with the database for _computer-database_ example and depending on the number of parameters within the query it runs approximately __from x1.25 and x7 faster__.

Here I attach some examples to get the execution times respect to their original SQL().on() functions. Each result is the average of 10 sets of executions.

__First example: select with 0 parameters__
```scala
var i = 0
var t = System.currentTimeMillis
while (i < 10000) {
  SQL"select * from computer limit 50".as(Computer.simple *)
  i += 1
}
val time1 = (System.currentTimeMillis - t)
```
Execution time: 3450.1 ms (using _string interpolation_)
Original time: 4320.9 ms (using original _SQL().on()_ funciton)
=> __x1.25 faster__


__Second example: select with 2 parameters__
```scala
val companyName = "a%"
val computerName = "a%"
var i = 0
var t = System.currentTimeMillis
while (i < 10000) {
  SQL"""
    select * from computer left join company on computer.company_id = company.id
    where company.name like $companyName and computer.name like $computerName
    limit 50
    """.as(Computer.simple *)
  i += 1
}
val time1 = (System.currentTimeMillis - t)
```
Execution time: 2895.7 ms (using _string interpolation_)
Original time: 6282.1 ms (using original _SQL().on()_ funciton)
=> __x2.17 faster__


__Third example: update with 5 parameters__
```scala
var i = 0
var t = System.currentTimeMillis
while (i < 10000) {
  SQL"""
    update computer
    set name = ${computer.name}, introduced = ${computer.introduced},
    discontinued = ${computer.discontinued}, company_id = ${computer.companyId}
    where id = $id
    """.executeUpdate()
  i += 1
}
val time1 = (System.currentTimeMillis - t)
```
Execution time: 371.3 ms (using _string interpolation_)
Original time: 2646.3 ms (using original _SQL().on()_ funciton)
=> __x7.13 faster__