Fix #1569.

* Change `guessPackageName` to translate arbitrary strings into valid
package names.
* Change type of `packageName` flag from String to PackageName and
reject names that do not pass PackageName's corresponding parse
function.
Frozen dependencies are printed on their own lines

A new pretty-print has been introduced `D.ParseUtils.commaNewLineListField`.
It is similar to `D.ParseUtils.commaListField` but has each item on its own
line.

The constraints section of the package environment is pretty printed with
`commaNewLineListField`.
Merge pull request #1748 from ianbollinger/fix-#1569

Fix #1569.