start implementing more ops, reorg monad stack

try to use MonadWriter etc to simplify signatures, run into problem
where more things need instances.

also write a massive mess for sendInvite, which may or may not work