Simplify zipWith3 and zipWith4 to reduce code size

The performance impact isn't worth the code blowup.

Also, fix a bug in `fromFunction`.