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.
At some point we determined in Spire that we preferred implicit vals to implicit objects due to the lazy initialization code that objects always run. I should probably look into that again to see if it actually makes a different -- in Spire it just became a convention, and possibly just a superstitious one.