Transformers proof-of-concept

By decomplecting the monadic value types from the monad's behaviour
having transformers is now possible. The existing API still works, but
there are still a few problems I'd like to address:

 * using monad transformers with mlet syntax;
 * automatic lifting within mlet in a transformer context (should be
   possible with `inner` and `lift`);
 * renaming of `core.lift` to `core.lift-m`;
 * adding back the set, list and lazy seq monads.