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.
This seems like poor usage, which existed before you did this PR, but should probably be fixed.  Very simplified example:

`def detect(handlers=None):
    
    if not handlers:
        handlers = get_registry(type)