Add applicative and monadic folding actions.

In particular, various applicative and monadic folds and traversals that
ignore the result.
Inline everything in FoldableLL.
Add (un)foldable functions when sizes are known.

`toListN` converts a collection into a list and optionally returns its
length, if it doesn't add additional overhead.
`fromListN` is an optimized version of `fromList` if we know the
expected length of the input list.
This allows more efficient generic implementations of `map` and
`traverse`.