`create_country_codes()` should be done by a template helper function? That just needs to be run once when the plugin is loaded, it creates the country codes in the db if they don't already exist. The problem with having to overriding all the templates is that `setup_template_variables()` puts the country codes against the template context `c` and `c` isn't passed to many template files. If template helpers are available to all template files, then accessing the list of country codes via a helper instead of `c` might remove a lot of template overriding.

But if that's the case, should we have `setup_template_variables()` in plugin interfaces at all? Do we want to discourage plugins from using `c` and make them use helper functions instead?