Merge pull request #728 from dylex/master

Catch erroneous (singleton) recursive definitions
Revert "Catch erroneous (singleton) recursive definitions"

This reverts commit 2bd5dc46fa95bff3812f4d4e089617a53fefb186.
Remove STArray implementation.
Do not descend into Let bindings multiple times during desugaring
Add back @dylex's binding groups change.
Make everywhereOnValuesM only apply functions once at top level

The traversal functions already pass their results through the
functions.  There should be no need to do it again.
Merge pull request #731 from purescript/starray

Remove STArray implementation
Merge pull request #735 from dylex/everywhere-once

Make everywhereOnValuesM only apply functions once at top level
Move from cmdtheline to optparse-applicative #690
Merge pull request #736 from anthoq88/master

Move from cmdtheline to optparse-applicative #690
Fix #738
Add example, update code based on @dylex's suggestion
Merge pull request #733 from purescript/730-1

Do not descend into Let bindings multiple times during desugaring
Bump version
Fix verbose-errors flag
Default value for output flag
Revert @dylex's binding group change - was breaking strongcheck. Third time lucky ...
Refine optparse-applicative dependency version

The function `strArgument` was introduced in 0.10.0, while some
distributions are still at 0.9.  Make this dependency version explicit.