Declare all language extensions via `{-# LANGUAGE #-}`

Only a few were missing in the `{-# LANGUAGE #-}` annotations.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Refactor & modernize `.cabal` to `cabal-version>=1.10`

Updates the `description` include a link to the Haskell wiki and list
potantially used extensions in `other-extensions`.

This also sets proper `build-depends` which effectively tie
`template-haskell` to GHC 7.7/7.8 and thus should help keep
`cabal-install` from attempting to compile the `template-haskell`
package with older/newer GHCs.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>