Generalized types for commonly convenient folds

I changed the prelude to export `product`, `minimum`, and `maximum` from `Data.Foldable` instead of from `Prelude`.

This shouldn't hurt anyone because it's in the `base` package, and so is the `Foldable` instance for `[]`. It also matches what we did with `sum`.