Enable dependency injection

This is done via `make_renderer` which constructs a Renderer object,
whose `__init__` method no longer has logic. `make_renderer` is a
factory function which gives users the convenience of the old `__init__`
but improves testability.

This commit also simplifies logging to use a regular logger, rather than
the Flask logger, which would not enable DI.
Remove filter_func

There is no reason to include `filter_func` anymore, since its role is
to filter for templates and the Renderer already has a method,
`is_template` to do so.
style changes
Factor out `get_rule`

This just make it slightly more obvious how `render_template` works, and
adds another seam for testing.
Merge pull request #19 from Ceasar/factory

Enable dependency injection