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.
We could do:

```scala
class MapSemiring[K, V](implicit ev: Semiring[V]) extends Semiring[Map[K, V]] { ...
class MapRng[K, V](implicit ev: Rng[V]) extends MapSemiring(ev) with Rng[Map[K, V]] {
  def negate(...
```
Actually, Group, Monoid, Semigroup, Commutative*, are all possible too. I guess we should punt on this. This PR is big enough already.

We actually geeked out on this in Algebird since it comes up in scalding a fair bit. We profiled and really improved the costs from our first naive approach.