title: How to get insert statement with data as String
body: <p>Perhaps I use <code>Table.insertStatementFor</code> wrong.</p>
  
  <p>I'm using Slick 3.0.x and Scala-2.11.x</p>
  
  <p>There are the following classes and objects:</p>
  
  <pre><code>case class User(id:Int, name:String)
  
  class Users(tag: Tag) extends Table[User](tag, "users") {
    def id = column[Int]("id", O.PrimaryKey)
    def name = column[String]("name")
    def * = (id, name) &lt;&gt; (User.tupled, User.unapply)
  }
  
  val table = TableQuery[Users]
  </code></pre>
  
  <p>I want to get insert statement string with data. 
  The method <code>table.insertStatement</code> returns </p>
  
  <pre><code>INSERT INTO users(id, name) VALUES(?,?)
  </code></pre>
  
  <p>I want to get the following string for <code>User(1, "John")</code>:</p>
  
  <pre><code>INSERT INTO users(id, name) VALUES(1, 'John');
  </code></pre>
  
  <p>I tried use method <code>table.insertStatementFor(User(1, "John"))</code>, but it is not works and raised exception:</p>
  
  <pre><code>not enough arguments for method insertStatementFor: (implicit shape: scala.slick.lifted.Shape[_ &lt;: scala.slick.lifted.FlatShapeLevel, models.User, ...
  </code></pre>
  
  <p>Does the solution of this task exist?</p>