Improve laws, and get laws testing a bunch of standard types.

This commit does a few things:

 1. Restores clobbered project/build.scala file.
 2. Add ?-prefixed ScalaCheck operators for better test output
 3. Improves the laws a bit
 4. Adds many std instances, and checks the laws against them
 5. Implements toy rational type ("Rat"); tests the field laws.

At this point I feel like the laws are in good enough shape for
others to start building on. We can also add more std instances.

For now, I am trying to keep the std instances as simple as
possible. This means no specialization, and also no performance
concerns. I don't think we should plan to port over "real" types
to std, but rather use it to check laws and provide simple code.