feature.multiple renderers

Allow registering more than one jinja2 renderer via `config.add_jinja2_renderer`. This also properly defers logic within `config.add_jinja2_search_path` etc. This is a major rewrite/modernization of the library with a pretty large amount of backward compatibility preserved including the stupid `renderer_factory` global.