Add Heyting algebras; better Boolean/Heyting algebra tests.

This commit formalizes the laws for Boolean and Heyting algebras, and
generalizes the BooleanAlgebra operators to Heyting algebras. It does not
change any of the import names--this could be a future change.

It also cleans up many 2.11 test warnings due to unused imports.
Rename BooleanAlgebra[A] to Bool[A], and other cleanup.

In addition to the rename (to be consistent with Heyting[A] and
potentially other algebras as well) this commit cleans up the
inheritance from Heyting to Bool, and adds the correct ops/syntax
for both.
Fix the final few places still referring to BooleanAlgebra.
fix merge conflicts
remove unneeded file
Add lattices, create spire.algebra.lattice, and so on.

This commit adds lattices and join/meet semilattices
(bounded and unbounded), and has heyting algebra extend
bounded lattice.

There are still some unresolved issues:

1. Right now, Bool[A] uses and/or, Lattice[A] uses meet/join,
and Heyting[A] uses both. There's some tension around what the
symbolic operators should map to.

2. There aren't any instances for lattices right now. It would
be good to provide at least min- and max-based semilattices.

3. The join and meet symbolic operators still require Heyting,
instead of the relevant semilattices.

4. We need companion objects, documentation, tests, and examples
for all the various flavors of lattice.
Improve the situation with unicode operators, lattices, etc.

This change adds ops support for many of the unicode operators.
It also moves things around a bit (e.g. moving unicode operators
into Interval) and adds some basic instances of lattices.

Which lattice instances should we provide by default?

If we Order[A] and EuclideanRing[A], there are two different
Lattice[A] implementations: one based on min/max and one based
on gcd/lcm. Spire does not guarantee type class coherence for
exactly these reasons, but we should endeavor to keep things as
sensible as possible.
Clean up implicit operators, adding meet/join semilattice support.
Rename spire.syntax.semilattice to spire.syntax.lattice.
Merge remote-tracking branch 'upstream/topic/heyting-algebras'