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.
Should we add the other conversion?
```scala
def from[A](s: Semilattice[A]): JoinSemilattice[A] = new JoinSemilattice[A] {
  def join(l: A, r: A) = s.combine(l, r)
}
```