Make bloat test fairer + more realistic

* Make iostreams formatting match the printf versions

* Make local const char* versions of strings before passing to printf()
  variants.  If not, templates will be instantiated with the distinct
  char array types char[13] and char[4] for "somefile.cpp" and "asdf"
  respectively, which probably isn't very realistic: if they were
  constant arrays, they would probably be part of the format string
  rather than separate arguments.
Proper type-agnostic FormatList + vformat() function

* Make FormatList type independent of the number of template arguments,
  and introduce a vformat() function, analogous to C vfprintf().

* Create FormatListN<n> template for fixed size format lists, to avoid
  any dynamic allocation where possible.

* Create makeFormatList() and FormatListRef types as a convenient way
  for users to create and use FormatListN, without worrying about the
  exact type.