ligd: Add foldl() and foldr() with re-ordered arguments and higher-kinded types

Much much nicer interface. The higher kinded type and the re-ordered
arguments allow Scala to infer the type of lambda parameters automatically.

Less work!