Add Foldable and Traversable to Prelude

These changes add `Foldable` and `Traversable` typeclasses along with instances for `List`, `Maybe`, `Vect n`, and `Language.Reflection.Binder`. A minimal set of obvious folds is included, replacing some of the type-specific implementations. More folds could be added, but this might require some restructuring of intra-Prelude dependencies in some cases.