[template] Switch to using a configuration object

Instead of having flavors of `Template.register()`, take a third
parameter that defines the type of the template
[template] Change `node` type to `live`