Feature/refactor

Added docs and renamed variables for clarity. Modules now make use of RenderResult. Changes to the player allow for multiple renderers and export options. The config file now requires a list of Renderers and a list of exporters rather than just a list of handlers.
We use the word "render" elsewhere in the codebase and in the documentation to mean "building the output that will be passed to the client". As long as we stay consistent, the meaning is clear. It is made even made more clear by the fact that other Python libraries that do HTML generation (templating engines like Mako or Jinja2 and documentation generators like Sphinx) all use the word "render" in the same way we are using it.