Make sure everything has an upper bound
Stricter bound for language-ecmascript
Add lower bounds to every package.

This includes packages that work for all previous versions, in which
case the lowest version is picked as a lower bound. This is meant to
avoid later questions if a package is failing because there is no lower
bound.

Some lower bounds are fairly speculative, but it shouldn't matter.
Merge pull request #726 from maxsnew/end-cabal-hell

End cabal hell