MonadRender

Addresses issue #8 although comments are welcome.
I agree -- Do you think it'd be better to make it a `ReaderT Renderer`? I believe that if we make a separate type it can be optimized in the future if need be. Perhaps `ReaderT Renderer` is already fast enough?