Make NoSolutionError constraints match format of input

When setting constraints to be resolved, they are specified like `["package", "constraint"]`
However the NoSolutionError was outputing them as a string like `"(package constraint)"`
which makes it much harder to programmatically determine what constraints had no
solution. It makes sense to output that in the same format as inputted.

In the `NoSolutionError#to_s` method, I am reformatting into the original string. This causes the appropriate specs to still pass. (However I noticed 2 specs were failing before I made any changes.)