remove superfluous build.sbt
rename `Laws` to `AlgebraLaws`

* prettify test cases
* move `LawChecker` into own file
* move `Arbitrary` instances into own file
refactoring the definition of laws, part 1: "The cake is (not) a lie"
refactoring the definition of laws, part 2: "For a Few Laws More"
refactoring the definition of laws, part 3: "Want to have some cake?"

We want to exclude 0 when testing division. This is not as easy as it seems,
since the Multiplicative* classes do not have a member which holds their zero
value. Hence, we have to take care of that specially, by requiring (at least)
an AdditiveMonoid when instantiating the law cake.

This commit splits `AlgebraLaws` into `GroupLaws`, `RingLaws` and `BaseLaws`.
docs