refactor mako to configure at config time instead of at first-render
Remove the mako_settings dict

We decided against allowing configuration by calling functions on the
Configurator.
Move renderer_factory into renderer_factory_helper

Then define a renderer_factory that is the result of calling the
renderer_factory_helper.
Add a mako renderer initializer that reads config

After reading config it registers it with the Configurator for lookup
under the IMakoLookup "namespace".
Add add_mako_renderer to Configurator

This will allow an end user to register more file extensions with a
different setting "namespace". For example:

    config.add_mako_renderer('.email', settings_prefix='mail_mako.')

This will read from the config.registry.settings dict and look for
anything prefixed with mail_mako., this will then be used to set up
Mako. Now it is as simple as using:

    from pyramid.renderers import render
    result = render('password_reset.email', {username: 'John',
                                             reset_link:
                                             'http://example.net/login'
                                             })

to render HTML email's that can then be sent out.
Rename Test renderer factory to Test initialize renderer

Since we are no longer lazy loading Mako's lookup mechanism we can't
expect that calling renderer_factory will everything for us.

We have to explicitly initialize the renderer with the settings we want
by adding the settings to the current config object. The settings passed
in with info to the renderer_factory is basically ignored now, and no
longer has any effect.
Remove useless tests
Verify that calling the registration again fails
Verify that setting reload_templates works as intended

One problem I did run into, pyramid.reload_templates and
reload_templates can be different values. Not sure how to best solve
this problem...
Test register multiple different renderers

We also do a check to make sure that the lookup returned is the same as
that what is being used by the renderer_factory that is registered.
We have to config.include(pyramid_mako)

Adding the renderer without calling _initialize_renderer doesn't make
much sense since the renderer_factory won't be able to lookup the
IMakoLookup.
Remove config.add_setting in random location

At this point it is already too late to change the settings since the
renderer has already been initialized.
Add test for add_mako_renders Configurator call
refactor to allow multiple renderer factories
broadcast 3.3 support
add some docs and fix a couple tests
add bw-compat shim
nope, no shim

adding the shim would require re-adding a registry lock, and we've
already added an api to migrate to, so recommending that instead
make renderer factory a function
Merge branch 'origin/feature.renderer-relative-paths-bert' into feature.renderer-relative-paths