Improved documentation for `unfoldr`.
Improved `unfoldr` instance for lists.

The default `Data.List.unfoldl` cannot be inlined, which prevents list
fusion.
Add left folds with early exit.

This allows efficient implementation of many search functions that
terminate as soon as they find a result.