Beefed up util.format that lets you use positional or named substitutions when formatting