ligd: Directly represent booleans

We need direct booleans for some examples and it makes no sense to represent
them as other types.
ligd: Implement a custom equals for RList (breaking recursion)

This makes it possible to compare list types, allowing us to do crazy
stuff like finding all lists of integers in an object.
ligd: Add generic folds and some example folds

Useful stuff, although slightly crazy
test: Add sum, min cases and a new non-generic "Direct" library

This helps benchmarking the overhead of our code
CompanyTest: Add some more LIGD test code