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.
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc