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
Fix tidying of vectorised code

* We need to keep the vectorised version of a variable alive while the original is alive.
* This implies that the vectorised version needs to get into the iface if the original appears in an unfolding.
Vectoriser: PArray may be part of identity conversions
Vectoriser: binders of encapsulated lambdas need to be scalar
Vectoriser: abstract arguments to scalar functions in the right order
Vectoriser: avoid producing (\v -> v) v in liftSimple
Remove '-favoid-vect' and add '-fvectorisation-avoidance'

* By default '-fvectorisation-avoidance' is enabled at all optimisation levels (but it only matters in combination with '-fvectorise').
* The new vectoriser always uses vectorisation avoidance, but with '-fno-vectorisation-avoidance' it restricts it to simple scalar applications (and dictionary computations)
Merge branch 'refs/heads/vect-avoid' into vect-avoid-merge

Conflicts:
	compiler/rename/RnSource.lhs
	compiler/simplCore/OccurAnal.lhs
	compiler/vectorise/Vectorise/Exp.hs

NB: Merging instead of rebasing for a change. During rebase Git got confused due to the lack of the submodules in my quite old fork.
Vectoriser: merge fix
Merge branch 'refs/heads/vect-avoid-merge'