Add support for lattices.

Since we started this project, Spire added support for boolean algebras,
heyting algebras, and lattices.

This commit adds type classes for these types.
But arguably this behavior is too complicated or not worth it. I agree that either I need to fix the docs, or change the code, or both.