Build fiddling

It started with wanting to build scaladocs for spire. Then I noticed that there are published artifacts of `example` and `benchmark`. Then I fixed the build file to prevent that from happening.

Now, back to scaladocs. I added `sbt-unidoc` to the build. This introduces a new command, `unidoc`, which creates scaladocs for the `macro`, `core`, and `scalacheck-binding` submodules. Unfortunately, scaladoc choked on something, so I had to add some type annotations in `core`. Oh, and because `scalacheck-binding` resided in `spire.algebra`, I moved it to a new package `spire.laws`. I think that's all.

By the way, I highly recommend using the `sbt-release` plugin. That will make releases so much easier. If you want it, I'd be happy to set it up and extend this pull request with it.