Add fusion rules for the zipWith functions in base (Trac #15263)
This patch will allow zip3 and zipWith3 in GHC.List as well
as zipWith4, zipWith5, zipWith6 and zipWith7 in Data.OldList to fuse.
These rules are kept in a similar style as the rules for zip and zipWith.
Added a corresponding test case.
Test Plan: validate
Reviewers: hvr, bgamari, simonpj
Reviewed By: simonpj
Subscribers: simonpj, rockbmb, rwbarton, carter
GHC Trac Issues: Trac #15263
Differential Revision: https://phabricator.haskell.org/D5241