Fix violation of functor laws

Because `nil` exists as a singleton in Ruby, we need to preserve it when 
yielded from `fmap` in order to obey the functor laws.

This ensures that:

    1.wrapped.fmap { nil }.unwrap_or(1)

Returns `nil` and not `1`.