Added toString and printSolution methods

Don't print solution directly, but print is using one of the `solve()` methods:

 - `printSolution (style)` or
 - `toString(style)` that returns a string

This fixes #3.