MonadRender

Addresses issue #8 although comments are welcome.
I like the idea of being explicit about the fact that the action needs to be within a `MonadIO` context. However, since we already have an instance of `MonadTrans`, that distinction might be moot. Is this what you mean?