Option/Maybe monoids tagged by Min/Max should ignore their zeros.

This addresses #776 .

This PR fixes:

* `Monoid[Option[A]@@Min, Max]` ignores `None`, which is identity(`zero`) of the monoid.
* `Monoid[Maybe[A]@@Min, Max]` ignores `Empty()`, which is identity(`zero`) of the monoid.
* Several tests for monoid laws and ignorance of zeros were added.