Add subprojects; first pass at adding laws and tests.

This commit creates three sub-projects:

 - core: builds algebra.jar; contains type classes (and a few types)
 - std:  builds algebra-std.jar; contains sample instances
 - laws: builds algebra-laws.jar; contains laws and conformance tests

It also ports over the basic laws from Spire for:

 - signed
 - eq/order
 - groups
 - rings

Finally, it adds a very simple standard algebra instance for Int, and
runs the relevant laws tests on it.
So, in Spire's case we use traits to contain all the implicits so we can mix the trait both into "its own" package object as well as a "shared" package object (e.g. `all`), and possibly other "omnibus" package objects.

If I changed the objects to package objects does that seem better?