Make seperated named functions for the Monoid <=> Maybe cast.

Also, Semigroup a -> Monoid (Maybe a) should actually only require a semigroup.
Merge pull request #206 from LeifW/factor_out_monoid_maybe_cast_to_named_functions

Make seperated named functions for the Monoid <=> Maybe cast.