Add first draft Maybe monad, and nothing instance

For discussion, not ready to merge.  A Maybe monad with functor, applicative, monad, foldable, semigroup, and monoid, plus a few specialized methods, like isNothing.  The nothing value is a singleton to avoid branching in every method.