Laws for lattices, including a bug fix for the definition of bounded semi-lattices

I created a new hierarchy for laws of lattices using Discipline, then added a test for a bounded min/max lattice of ints.

The definition of a bounded join semilattice include the identity element, named zero, and the meet semilattice include the identity element one. These definitions were reversed in spire.algebra.lattice, and this is corrected now.