End cabal hell

I've added lower and upper bounds to every dependency. See the third commit message for more detail on lower bounds.

With upper bounds comes difficulty when new packages are updated. To make sure we move fast to fix this, we should subscribe to this rss feed: http://packdeps.haskellers.com/feed?needle=exact%3AElm and update minor version numbers to allow newer dependencies when we can