Allow providing extra context to TemplateHook.

Previously, if one wanted to provide additional context to TemplateHook,
it would have to subclass and override render_to_string(). Now, extra
context can be provided to the constructor, and subclasses can
dynamically provide additional context by overriding
get_extra_context().