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.
Ahh. I missed that `and`, `or` and `compliment` are from `Heyting` I guess.