Remove more exception compatibility code

This one removes Cabal's throwIOIO in favour of
Control.Exception.throwIO.

Note that throwIO is more polymorphic than throwIOIO, but in all current
use cases the same type is inferred anyway.
Merge pull request #1377 from benmachine/updated-nocompat

Removing some redundant exception compatibility code
Bump the dependency on 'unix'.

Fixes #1384.
Use System.Process instead of System.Cmd.

System.Cmd is deprecated in process-1.2.
Formatting.
Formatting.
Whitespace.
80-col violation.
Typo.
Add arguments EXTRA_BUILD_OPTS and EXTRA_INSTALL_OPTS.

Also add SCOPE_OF_INSTALLATION to 'setup install'.
Test suite: use regexes to match the compiler error message.

GHC >= 7.7 outputs Unicode quotation characters when possible (see
http://ghc.haskell.org/trac/ghc/ticket/2507 ), which breaks tests that rely on
substring matching.

Alternatively, we can run GHC with 'LC_ALL=C', but I'm not sure whether that'll
work on Windows.
Whitespace.
Add Functor/Applicative instances for ParseResult

ParseResult is a Monad, so it should also be a Functor and an Applicative.
Correct applicative instance
Functor/Applicative instance for types in ReadP.hs

This defines the following instances for the types in ReadP.hs:
  * Functor/Applicative for P
  * Appplicative for Parser
Tidy up

Remove uneeded import of join and add a wildcard pattern when f is
unused by fmap.
More instances and use ap as default for (<*>)
Fix building of executables that use TH with dyn-by-default GHC.

Fixes #1252. Makes the test suite pass with GHC HEAD.

(If 'TemplateHaskell/profiling' still fails, you're probably affected by this
GHC bug: http://ghc.haskell.org/trac/ghc/ticket/7978 . Try compiling a more
recent GHC HEAD.)
Apply suggestions from byorgey
Merge pull request #1385 from bennofs/patch-1

Functor and Applicative instances