Use OrdLists when parsing export lists

No functional changes
Remove redundant parentheses
Whitespace only in basicTypes/Avail.hs
Whitespace only in basicTypes/BasicTypes.lhs
De-orphan a load of Binary instances
Beautify a few Binary instances
Whitespace only in basicTypes/RdrName.lhs
Whitespace only in deSugar/Match.lhs
desugar code even when -fno-code is used; fixes #8101

We need to desugar the code, or we don't get the warnings from the
desugarer.
Remove an out-of-date comment (see #8101)
Move libffi's tarball into its own repo

This means that ghc-tarballs is only needed on Windows
Rename doDynamicToo to dynamicTooMkDynamicDynFlags

Makes it look less likely that people will confuse what it is for
(e.g. #8104).
Make sdist make a separate tarball for the Windows tarballs
Change which files --make mode thinks are 'Haskellish'

It thought that .cmm files were Haskellish, but then didn't know
how to compile them. Now they aren't treated as Haskellish, and
it can compile and link them.
Added operational semantics to docs/core-spec.
Add strength reduction rules (Fixes #7116)

This patch adds rules for converting floating point multiplication
of the form 2.0 * x and x * 2.0 into addition x + x.
Fix typos
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc