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.
yes. Partial order is the right way here. You might comment that the order you are choosing here is consistent with the meet definition (isn't that right)?