Allow override of template_name in __init__() and render().

This fixes #89, allowing override of `template_name` in both `__init__()` (useful if you want to use the same widget class with two different templates without extra subclasses) and in `render()` (useful for more advanced use cases where you want to render the same widget instance on the same form field with two different templates, conditional on something).

Tests are included and pass on a full tox run.

I would happily add some docs as well, but in a quick perusal I didn't see where they would fit. As far as I can tell the individual widget classes are documented, but the core widget API isn't so far.