Tabs -> spaces (and some other formatting)
Formatting wibbles
Rewrote vectorisation avoidance (based on the HS paper)

* Vectorisation avoidance is now the default
* Types and values from unvectorised modules are permitted in scalar code
* Simplified the VECTORISE pragmas (see http://hackage.haskell.org/trac/ghc/wiki/DataParallel/VectPragma for the spec)
* Vectorisation information is now included in the annotated Core AST
Vectoriser: fix vectorisation avoidance for case expressions
Vectoriser: distinguish vectorised from parallel types and functions

- We sometimes need to vectorise types and functions because they might be needed in a vectorised context, not because they do directly introduce parallelism.
Vectoriser: don't include scalar types in base set of parallel tycons
Vectoriser: enable encapsulation of scalar functional expression of arbitrary form
Vectoriser: improve top-level check and vectFnExpr
Vectoriser: VECTORISE pragma assumes parallel values
Vectoriser: don't pack free *scalar* variables
Vectoriser: depending set of a vectorised tycon need only be vectorised if also parallel
Use throwGhcExceptionIO rather than throwGhcException in ghci/Linker.lhs
Change a few throwGhcException uses to throwGhcExceptionIO
Use throwGhcExceptionIO rather than throwGhcException in main/DriverPipeline.hs
Use throwGhcExceptionIO rather than throwGhcException in main/DynFlags.hs
Use throwGhcExceptionIO rather than throwGhcException in InteractiveEval.hs
Change a few throwGhcException uses to throwGhcExceptionIO
Change a few throwGhcException uses to throwGhcExceptionIO
Make MonadIO a superclass of ExceptionMonad
Use throwIO rather than throw