Improved product's toString to include strings

Test frameworks and debuggers use `toString` to show string-based information to users. It helps users a lot if strings are shown with quotes.

```
scala> case class Person(name: String, age: Int)
defined class Person

scala> Person("", 0)
res0: Person = ("", 0)
```