Factors the lifting of environment and writer monads in bootstrap/Monad.v

Takes a few extra lines but is probably more robust to future changes.
Doesn't change the extracted code.
bootstrap/Monad.v: implements the environment monad in continuation passing style.

Benefits: the underlying monads are not referenced in the "current" primitive.
Potential costs: some extracted functions now have 9 arguments, Ocaml may not be good at handling these. The split primitive, which is called often, now builds one extra closure.
bootstrap/Monad.v: implements the writer monad in continuation passing style.

Benefits: fewer pair constructed/destructed especially in split.
Potential costs: plus and zero now have closures with 11 arguments.