Fix broken identity in Sign, and add multiplicative monoid

Sign's identity is Positive, not Zero. Also, in addition to just
providing a generic monoid it's also friendly to provide a
multiplicative monoid, since that's how we usually think about
combining signs.
Drop support for cross-building on 2.9.3

This means we can use universal traits for type classes.
It also means we can use some newer scalac options, as
well as possibly value classes, macros, or other new
2.10 features.
Update README.md
Merge pull request #12 from non/add-dev-note

Update README.md
Merge pull request #8 from non/topic/drop-2.9

Drop support for cross-building on 2.9.3
Merge pull request #7 from non/bug/fix-sign

Fix broken identity in Sign, and add multiplicative monoid
Merge remote-tracking branch 'origin/master' into topic/lattices
Added Semilattice and BoundedSemilattice.

I also tried to provide some initial documentation for lattices,
but I'm sure the text can be improved. There is some tension between
using mathematical symbols (concise and easy to read IMO) and using
the methods (denser but closer to code).

It would be still be good to link to the relevant Wikipedia articles and
other useful sources as well.