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.
Merge pull request #7 from non/bug/fix-sign

Fix broken identity in Sign, and add multiplicative monoid