Add upper bounds to cabal package dependencies.

All packages in Cabal's package dependency list now have upper bounds. I have confirmed that all of the packages that previously lacked upper bounds work with most recent minor versions of the libraries on Hackage*. I added upper bounds in accordance with the suggestions from [Haskell's package versioning policy](http://www.haskell.org/haskellwiki/Package_versioning_policy#Dependencies_in_Cabal); that is, they are bounded by the next minor version. 

This should help Idris be more robust to breaking API changes in any of the packages that it depends on.

\* (with the exception of the *time* package)
And the reason for the lower bound is that Cabal 1.18 was the first to allow executables to depend upon libraries in the same .cabal file.