Implement basic logical operations on predicates.

If we're going to be having predicates about it'd be good to be able to perform
logical operations on them. This commit provides the equivalent of NAND, NOT,
AND and OR.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Reintroduce fe:foldl1/2.

I had no intention of deleting this function, but I did! Them's the wages of sin
and by 'sin' I mean letting feature branches bleed into one another.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>