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)
Oh, `Cabal-Version`, sorry. What do we depend upon the library?