interface: Change EXPAND-INTERFACE-METHOD> so that method documentation works.

* It expected the string to be a list for ,@DOC-STRING , so it now is.
interface/monad: Add the new <MONAD> interface.
interface-monad.asd: Two systems, :INTERFACE/MONAD and default :INTERFACE-MONAD

* This is just an abstract monad interface, but also has the
  LIFT-FUNCTION that is required by the list transformer and is
  generally included in monad libraries

* One package per file, one ASDF system per package, and one
  interface-monad.asd.
interface/monad/identity: Add the <IDENTITY> monad interface
interface-monad: one system per file
interface/monad/test/monad: CHECK-INVARIANT for the 3 monad laws
interface-monad.asd:ospf
interface/monad/test/monad/identity: add the literate tests from monads.org
interface/monad: :singleton needed for the CHECK-INVARIANT
interface-monad.asd: ospppf
interface/monad/maybe: The <MAYBE> monad interface
interface/zero-plus: The <zero-plus> interface, needed for <MAYBE> and 'laws'
interface/monad/test/monad/maybe: The literate test suite.
interface-monad: ayuh
interface/monad/test/monad/monads: add the literate test suite
interface-monad.asd: asdf

 * This is :tangle'd from a interface-monads.org file that will be
   commited with the documentation
interface/monad/list: <LIST> monad
interface/monad/test/monad/list: it needs this for CHECK-INVARIANT
interface/monad/test/monad/monads: add it
interface-monad: re-arranged it some and yes, added these things
interface/monad/state: The <STATE> monad
interface/run: The <RUN> interface that <STATE> requires
interface/monad/test/monad/state: literate
interface/monad/test/monad/monads: test add
interface-monad.asd: RUN and STATE
interface/monad/continuation: <CONTINUATION> monad.
interface/monad/test/monad/continuation: literate
interface/monad/test/monad/monads, interface-monad.asd: yup
interface/monad/transformer: <TRANSFORMER>
interface/monad/test/monad/transformer: test the INNER monad
interface/monad/test/monad/monads: test all the monads <TRANSFORMER>d
interface-monad: ...

* The :INTERFACE/MONAD/TRANSFORMER package exports INNER, to access
  the transformed monad, and LIFT, to LIFT an INNER monadic value to
  the <TRANSFORMER> mv.
interface/monad/transformer/maybe: <MAYBE-TRANSFORMER>
interface/monad/test/monad/transformer/maybe: yup
interface/monad/test/monad/monads, interface-monad: sure
interface/monad/transformer/list: <LIST-TRANSFORMER>
interface/monad/test/monad/transformer/list, others
Merge branch 'interface/monad'