string-cat: smarter, easier string-join
fill-template: accept template fillers as "rest" args

rather than contained list, for code conciseness